我想在画布上绘制一个旋转的椭圆,我试图使用lineTo方法。
我知道使用这个公式
xposition = centerX + Math.cos(angle) * radiusX;
yposition = centerY + Math.sin(angle) * radiusY;
可以绘制椭圆形,但我不知道如何添加一些天使作为参数使其旋转,就像围绕x轴或y轴或z轴旋转一样。
答案 0 :(得分:2)
要围绕其中心旋转椭圆,可以使用公式:
x = rx * Cos(t) * Cos(fi) - ry * Sin(t) * Sin(fi) + cx
y = rx * Cos(t) * Sin(fi) + ry * Sin(t) * Cos(fi) + cy
要围绕Z轴(关于坐标原点)旋转,请使用
x = (cx + rx * Cos(t)) * Cos(fi) - (cy + ry * Sin(t)) * Sin(fi)
y = (cx + rx * Cos(t)) * Sin(fi) + (cy + ry * Sin(t)) * Cos(fi)
要围绕Y轴或X轴旋转,请应用旋转的仿射变换,并忽略Z坐标(在OXY平面上进行投影)