我正在学习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];
}
公式似乎很好,但是......我不知道,我无法弄清楚:/ ...感谢您的帮助。 http://jsfiddle.net/nQvGT/173/
答案 0 :(得分: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;