ios - Swift 中的三角函数

标签 ios swift trigonometry

<分区>

我是 iOS 初学者。我使用一些在线教程来学习 Swift,现在我正在尝试开发自己的计算器。我有一个任务是自己按下“sin”和“cos”按钮,这将返回输入值的正弦或余弦函数。

当然,Swift 中有 sin() 和 cos() 函数,但我发现,它以弧度而不是度数返回值。我确实搜索并找到了代码,就像那样

func sind(degrees: Double) -> Double {
return sin(degrees * M_PI / 180.0)
}

这是我在我的代码中实现的。现在一切正常,按钮返回正确的值。但是 180 度的正弦值为 0,当我在计算器中输入 180 并按下“sin”按钮时,它会返回另一个值。与 90 度的余弦相同,应为 0 但返回另一个值。

能否请您解释一下如何修复它? github 上的完整代码:https://github.com/senator14/firstcalculator.git

最佳答案

正弦和余弦函数的问题是 M_PI 是一个无理数,近似定义为 3.14159265358979323846264338327950288 这意味着它有一些错误。

您的问题的一个可能解决方案是输入范围从 -PI/2 到 PI/2。这减少了近似误差。以下将您的范围更改为 -90 到 90 度。

sin(((fmod($0, 360) > 270 ? fmod($0, 360) - 270 : ((fmod($0, 360) > 90) ? 180 - fmod($0, 360) : fmod($0, 360))) * M_PI / 180.00)) }

引用自here

关于ios - Swift 中的三角函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32046853/

相关文章:

ios - UICollctionView didSelectItemAt 问题

javascript - 为什么这个圆公式在 Javascript 中给出的是椭圆体,而在 Python 中给出的是圆?

ios - 在iOS中配置多个scheme会导致风格不匹配

ios - searchBar 未在 navigationItem 中居中

ios - 这种类型转换是否分配地址或数据?

swift - MKAnnotationView 现在显示 AccessoryItem

math - 圆环图 : calculate outer circle's coordinates to get parallel gaps between slices

java - 使用扫描生成正弦音 - Android

ios - 使用单个 Storyboard支持多种 iPhone 分辨率

ios - 如何在自定义 UITableView 单元格上获取 UITextField 值