我想旋轉其Z軸上的3D對象(上/下)。3D數學/ 2D旋轉計算:分割/切割3D模型?
public void RotateY(float angle)
{
foreach (CoordinateVertices cv in this.GetAll<CoordinateVertices>())
{
for (int i = 0; i < cv.Coordinates.Length; i++)
{
Vector3 old = cv.Coordinates[i];
float theta = Math.Atan2(old.Y, old.X) + angle;
float rayon = Math.Sqrt(Math.Pow(old.X, 2) + Math.Pow(old.Y, 2));
cv.Coordinates[i] = new Vector3(Math.Cos(theta) * rayon, Math.Sin(theta) * rayon, old.Z);
}
}
}
三角法相當簡單,它似乎工作正常,但由於某種原因,我的3D對象被削減了一半。
有誰知道發生了什麼事情的想法?我會在數學StackExchange上發佈這個,但這也可能是我編程時遇到的一個問題,三角函數非常簡單。
注意:在我看來,一半的座標輸出爲0,但我不知道爲什麼。 – Lazlo 2011-04-05 02:03:42