2016-12-28 54 views
0

我想在畫布上繪製一個旋轉的橢圓,我試圖使用lineTo方法。如何使用lineTo()方法在畫布中繪製旋轉的橢圓?

我知道用這個公式

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

可以繪製一個橢圓,但我不知道如何添加一些天使作爲參數,使其爲旋轉,像圍繞x軸或y軸或z軸。

回答

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平面上投影)

+0

你能解釋一下這個公式是怎麼出來的嗎? –

+0

還是有一些鏈接引用它? –

+0

https://en.wikipedia.org/wiki/Transformation_matrix。橢圓圍繞中心點旋轉 - 旋轉+平移 – MBo