//已知三角形的初始法向量、三个坐标点和终止法向量;求三角形保型旋转,及旋转后的坐标
//初始法向量叉乘终止法向量得三角形的旋转轴,同时可利用二向量求得旋转角度
//利用旋转轴和旋转角度计算其旋转向量,旋转向量的模长大小为旋转角度的弧度值
//初始法向量叉乘终止法向量得三角形的旋转轴,同时可利用二向量求得旋转角度
//利用旋转轴和旋转角度计算其旋转向量,旋转向量的模长大小为旋转角度的弧度值
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <cv.h>
//已知三角形的初始法向量、三个坐标点和终止法向量;求三角形保型旋转,及旋转后的坐标
//初始法向量叉乘终止法向量得三角形的旋转轴,同时可利用二向量求得旋转角度
//利用旋转轴和旋转角度计算其旋转向量,旋转向量的模长大小为旋转角度的弧度值
int _tmain(int argc, _TCHAR* argv[])
{
//vector<CTriangle> ScaTrinagle;//存放分散的三角形
int rotatezhou[3];//旋转轴
float rotatevect[3];
//ScaTrinagle.resize(m_nTriangles);
double angle = 3.14 / 2;//旋转角度
//利用旋转轴和旋转角度计算其旋转向量
rotatezhou[0] = 0;
rotatezhou[1] = 1;
rotatezhou[2] = 0;
rotatevect[0] = rotatezhou[0] * angle;
rotatevect[1] = rotatezhou[1] * angle;
rotatevect[2] = rotatezhou[2] * angle;
//从旋转向量求得旋转矩阵,
double R_matrix[9];
CvMat pr_vec = *(cvCreateMat(1, 3, CV_64F));
CvMat pR_matrix = *(cvCreateMat(3, 3, CV_64F));
CvMat pdst = *(cvCreateMat(1, 3, CV_64F));
/*cvInitMatHeader(&pr_vec, 1, 3, CV_6