将(x,y)坐标中的点相对于(0,0)移动/“旋转”x度的算法是什么?例如,在下图中,我想将点A移动到B,x度; A和(0,0)之间的距离在B和(0,0)之间应该相同。
我需要在前端环境中进行操作,即JavaScript。
答案 0 :(得分:5)
B.x = A.x * cos(x) - A.y * sin(x)
B.y = A.x * sin(x) + A.y * cos(x)
x
假定为弧度,否则必须转换。
答案 1 :(得分:0)
为了帮助进行大量的Canvas(或者只是JavaScript)转换,我创建了一个小型的Transformation类,它可以将任意类型的任意转换(旋转,缩放,转换)应用于给定的点。
当你需要数学来模拟画布上的变换矩阵时,这非常有用。
https://github.com/simonsarris/Canvas-tutorials/blob/master/transform.js
要用它旋转一个点,你可以这样做:
var t = new Transform();
t.rotate(5); // some number of radians
t.transformPoint(ax, ay); // returns [bx, by]