二維,三維坐標旋轉算法(公式)


本文是有關二維,三維坐標旋轉算法筆記。

1.二維坐標旋轉二維坐標旋轉公式圖下:

void Rotate2(double x1, double y1, double alpha, double& x2, double& y2) { x2 = x1 * cos(alpha) - y1 * sin(alpha); y2 = x1 * sin(alpha) + y1 * cos(alpha); }


2.三維坐標旋轉

在處理三維坐標旋轉時,使用標准的數學公式是沒有問題的。但是把二維坐標旋轉調用三次,也能夠實現三維坐標旋轉,而且有易讀易懂,処理速度快的長處。

void Rotate3(double x1, double y1, double z1, double alphaX,double alphaY,double alphaZ, double& x2, double& y2, double& z2) { //Z Axis Rotation double x3 = x1 * cos(alphaZ) - y1 * sin(alphaZ); double y3 = x1 * sin(alphaZ) + y1 * cos(alphaZ); double z3 = z1; //Y Axis Rotation double z4 = z3 * cos(alphaY) - x3 * sin(alphaY); double x4 = z3 * sin(alphaY) + x3 * cos(alphaY); double y4 = y3; //X Axis Rotation y2 = y4 * cos(alphaX) - z4 * sin(alphaX); z2 = y4 * sin(alphaX) + z4 * cos(alphaX); x2 = x4; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM