我有一个物体,当它旋转时从0度开始指向水平向右,然后向左旋转到+270度然后变为-90度然后回到零以完成360度旋转。 (我认为这只是spritekit的工作原理?)
如何设置此项以便我可以正确地对这些角度进行数学计算? 例如,我有两个物体,我试图计算彼此的度数差异,并设置相互之间的最小和最大角度差异,但如果一个物体翻转-90,则无法进行锻炼。另一个是265度,相差5度等? 我需要在这里使用/做什么来成功计算考虑270变化到-90等?
我想我问我如何让我的计算开始时为0并转到360而不是270到-90到0?
我的计算也是用弧度完成的,但我只是用度数来显示标签,所以我可以看到它等。
任何帮助都会很棒
答案 0 :(得分:0)
摘要:它是模数类型的操作,但模数仅适用于整数,并且您的角度可能有一个小数组件,因此会有类型转换和繁琐的细节来存储/恢复任何小数组件到结果.. < / p>
所以.. 手动做模数..
CGFloat myAngle = //however you calculate that..
while (myAngle < 0.0){
myAngle += 360.0;
}
while (myAngle > 360.0){
myAngle -= 360.0;
}
如果出于某种原因需要将其取回,只需更改这些值以反映范围:
while (myAngle < -90.0){
myAngle += 360.0;
}
while (myAngle > 270.0){
myAngle -= 360.0;
}