【发布时间】:2011-01-12 05:29:42
【问题描述】:
有两种观点:
viewA 和 viewB。两者都是旋转的。
旋转的坐标系很奇怪:它从 0 到 179,999999 或 -179,99999 度。所以本质上 179,99999 和 -179,99999 非常接近!
我想计算这些旋转之间的度数或弧度。
例如:
viewA 旋转 20 度
viewB 旋转 30 度
我可以这样做:rotationB - rotationA = 10。
但是这个公式的问题:
viewA 旋转 179 度 viewB 旋转 -179 度
那会出错:rotationB - rotationA = -179 - 179 = -358
358 是完全错误的,因为它们在现实中非常接近。所以我可以做的一件事可能是检查绝对结果值是否大于 180,如果是,则以相反的方式计算它以获得短的真实增量。但我觉得这是完全错误和糟糕的,因为可能存在浮点错误和不精确。因此,如果两个视图基本上以 179,99999999999 度旋转,如果幸运的话,我可能会得到一个奇怪的 180 或 0。
也许有一个天才式的数学公式与 PI、正弦或其他有用的东西来解决这个问题?
【问题讨论】:
标签: iphone cocoa-touch math uikit rotation