//已知三角形的初始法向量、三個座標點和終止法向量;求三角形保型旋轉,及旋轉後的座標
//初始法向量叉乘終止法向量得三角形的旋轉軸,同時可利用二向量求得旋轉角度
//利用旋轉軸和旋轉角度計算其旋轉向量,旋轉向量的模長大小為旋轉角度的弧度值
//#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...