Javascript 为什么不是';t圈?

Javascript 为什么不是';t圈?,javascript,graphics,2d,geometry,curve,Javascript,Graphics,2d,Geometry,Curve,我在学习2D图形,我试图画圆,但我得到了一些奇怪的曲线 function rotatePoint (point, centerPoint, theta) { point[0] = point[0] - centerPoint[0]; point[1] = point[1] - centerPoint[1]; point[0] = point[0]*Math.cos(theta)-point[1]*Math.sin(theta); point[1] = point[

我在学习2D图形,我试图画圆,但我得到了一些奇怪的曲线

function rotatePoint (point, centerPoint, theta) {
    point[0] = point[0] - centerPoint[0];
    point[1] = point[1] - centerPoint[1];
    point[0] = point[0]*Math.cos(theta)-point[1]*Math.sin(theta);
    point[1] = point[0]*Math.sin(theta)+point[1]*Math.cos(theta);
    point[0] = point[0] + centerPoint[0];
    point[1] = point[1] + centerPoint[1];
}
配方看起来不错,但是。。。我不知道,我想不出来:/。。。谢谢你的帮助。
您正在更改一个值,然后在计算另一个值时使用该值。必须首先使用原始值计算这两个值,然后设置它们:

var p0 = point[0]*Math.cos(theta)-point[1]*Math.sin(theta);
var p1 = point[0]*Math.sin(theta)+point[1]*Math.cos(theta);
point[0] = p0;
point[1] = p1;

演示:

也许你通过的角度是度。Javascript需要弧度。所以θ的范围不是0-360;是0-2分<代码>旋转点(d[400400],数学PI*n/180)或<代码>旋转点(d,[400400],n)-没什么区别当Guffa的答案可能是正确的。