转换为笛卡尔坐标时旋转角度错误

时间:2017-08-03 01:05:32

标签: javascript canvas degrees cartesian-coordinates radians

经过一段时间的决定,我决定将我的小型爱好项目(带有自顶向下视图的3D物理)转换为使用笛卡尔系统而不是使用屏幕坐标。当发现绘制圆形不正确时,一切都很好 - 它的半径与运动方向相反,例如,如果圆形朝向东南方向,则绘制的半径线指向西北方向。 这是绘制圆圈的函数:

mainWindow.Context.ellipse(drawX, //The x axis of the coordinate for the ellipse's center
                           drawY, //The y axis of the coordinate for the ellipse's center
                           5, //X-radius
                           5, //Y-radius
                           heading * (PI/180), //converted to radians
                           0, //starting point
                           2*PI, //ends, in radians
                           false); //draw in clockwise direction

虽然使用atan2(y,x)计算var标题并使用heading = heading * (180/PI)直接转换为Degrees,但我不确定是否应该将其正确转换回弧度(ellipse()仅采用弧度作为参数)

任何想法都是我的错误? 我如何计算标题:

angle = atan2(directionY, directionX) * (180 / PI); //to Degrees
if (heading - angle >= error) { heading = heading - (turnRate * PowerToWeightRatio); } 
else { heading = heading + (turnRate * PowerToWeightRatio); }

是的 - 这是我第一次尝试进行修正,增加或减去180度没有帮助,这看起来更像是一个临时修复而不是永久解决方案:(

0 个答案:

没有答案