三維空間中的三角形旋轉

2021-06-20 03:01:51 字數 1651 閱讀 6672

//已知三角形的初始法向量、三個座標點和終止法向量;求三角形保型旋轉,及旋轉後的座標

//初始法向量叉乘終止法向量得三角形的旋轉軸,同時可利用二向量求得旋轉角度

//利用旋轉軸和旋轉角度計算其旋轉向量,旋轉向量的模長大小為旋轉角度的弧度值

//#include "stdafx.h"

#include //已知三角形的初始法向量、三個座標點和終止法向量;求三角形保型旋轉,及旋轉後的座標

//初始法向量叉乘終止法向量得三角形的旋轉軸,同時可利用二向量求得旋轉角度

//利用旋轉軸和旋轉角度計算其旋轉向量,旋轉向量的模長大小為旋轉角度的弧度值

int _tmain(int argc, _tchar* argv)

printf("\n");

} printf("----------------------------\n");

//三角形的各頂點乘以旋轉矩陣得各點旋轉後的座標

double src[3];

double dst[3];

src[0] = 0;

src[1] = 0;

src[2] = 1;

cvinitmatheader(&pr_vec, 1, 3, cv_64fc1, src, cv_autostep);

cvmatmul(&pr_vec, &pr_matrix, &pdst, 1);

dst[0] = cv_mat_elem(pdst, double, 0, 0);

dst[1] = cv_mat_elem(pdst, double, 0, 1);

dst[2] = cv_mat_elem(pdst, double, 0, 2);

printf("%f %f %f\n", dst[0], dst[1], dst[2]);

src[0] = 0;

src[1] = 2;

src[2] = 0;

cvinitmatheader(&pr_vec, 1, 3, cv_64fc1, src, cv_autostep);

cvmatmul(&pr_vec, &pr_matrix, &pdst, 1);

dst[0] = cv_mat_elem(pdst, double, 0, 0);

dst[1] = cv_mat_elem(pdst, double, 0, 1);

dst[2] = cv_mat_elem(pdst, double, 0, 2);

printf("%f %f %f\n", dst[0], dst[1], dst[2]);

src[0] = 0;

src[1] = 0;

src[2] = 0;

cvinitmatheader(&pr_vec, 1, 3, cv_64fc1, src, cv_autostep);

cvmatmul(&pr_vec, &pr_matrix, &pdst, 1);

dst[0] = cv_mat_elem(pdst, double, 0, 0);

dst[1] = cv_mat_elem(pdst, double, 0, 1);

dst[2] = cv_mat_elem(pdst, double, 0, 2);

printf("%f %f %f\n", dst[0], dst[1], dst[2]);

return 0;

}

三維空間中剛體的旋轉

從零開始一起學習slam 三維空間剛體的旋轉 剛體 本身不會在運動過程中產生形變的物體,運動過程中同乙個向量的長度和夾角都不會發生變化。剛體變換也稱歐式變換。1 是重點!2 旋轉矩陣不是一般矩陣,它有比較強的約束條件。旋轉矩陣r具有正交性,r和r的轉置的乘積是單位陣,且行列式值為1。3 旋轉矩陣r的...

三維空間中的旋轉變換

1 繞座標軸旋轉的公式 1 繞z軸旋轉 2 繞x軸旋轉 3 繞y軸旋轉 以上的矩陣變換公式為 p p mat 2 繞任意軸旋轉的公式 給定具有單位長的 oa軸旋轉變換的矩陣表示可確定如下 3 繞任意軸旋轉在ogre中實現 ogre matrix3 i ogre matrix3 identity og...

三維空間剛體旋轉

剛體 運動過程中不會產生形變的物體,運動過程中同乙個向量的長度和夾角都不會發生變化。剛體變換也稱為歐式變換。旋轉矩陣 四元數旋轉向量 尤拉角安裝方式 eigen庫只有標頭檔案,沒有.so和.a二進位制檔案,所以在cmakelists.txt中只需要新增標頭檔案路徑,並不需要使用target link...