如何使用lineTo()方法在画布中绘制旋转的椭圆?

时间:2016-12-28 11:06:50

标签: javascript math canvas formula

我想在画布上绘制一个旋转的椭圆,我试图使用lineTo方法。

我知道使用这个公式

xposition = centerX + Math.cos(angle) * radiusX; yposition = centerY + Math.sin(angle) * radiusY;

可以绘制椭圆形,但我不知道如何添加一些天使作为参数使其旋转,就像围绕x轴或y轴或z轴旋转一样。

1 个答案:

答案 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平面上进行投影)