cab*_*ret 3 trigonometry objective-c ios
我一直在看斯坦福CS193P讲座,我一直在研究作业计算器.我很轻松地完成了第一项任务,现在我正在努力为任务做额外的工作.然而,我被困在一个额外的信用问题上:
实现一个用户界面,用于选择sin()或cos()的操作数是否被视为弧度或度数.当你在C库中调用sin(x)时,x被假定为弧度(即0到2π围绕圆圈一次),但是用户可能想要输入180并按下sin按钮并得到0而不是-0.8012 (这是180弧度的正弦).您可以使用UIButton并在每次按下UIButton时切换titleLabel的文本,但更好的方法是查看是否可以通过阅读文档来了解如何使用UISwitch(如果你敢!).
我实现了一个UISwitch并将其作为IBOutlet连接起来.当我执行'操作'时,我检查开关是打开还是关闭,并将其传递给我的模型以及要执行的操作.在我的罪和案件中,我做了以下事情:
else if ([operation isEqual:@"sin"])
{
if (radians) {
operand = sin(operand);
}
else {
operand = sin(operand) * (180 / M_PI);
}
}
// similar for cos
Run Code Online (Sandbox Code Playgroud)
如果radians(这是BOOL:YES =弧度,没有=度),那么我通常执行操作; 如果用户将开关置于'度',我想以度为单位返回值,因为赋值状态:用户可能想要输入180并按下sin按钮并获得0而不是-0.8012(这是180的正弦值)弧度).
但是,此代码并不完全有效.当我将开关置于度数时,sin 180它会返回更多或更少的值-45.那里出了点问题; 而且我不确定是什么.我已经查找了如何进行转换,我认为我做得对,但显然没有.
我意识到这可能更适合math.stackexchange,但由于我想发布一些代码,我把它放在这里.有人可以就实施此方法的最佳方式提供一些建议吗?我已经有一段时间了,因为我甚至使用过cos或sin,弧度和度数.
谢谢!
| 归档时间: |
|
| 查看次数: |
9452 次 |
| 最近记录: |