旋转和缩放程序都是可以任意指定基准点的,代码如下: #ifndef __TRIANGLE__H_ #define __TRIANGLE__H_ //三角形图像对象头文件 #include <cv.h> #include <cxcore.h> #include <cvaux.h> #include <math.h> #include <vector> using namespace std; / //定义各种图形对象和操作 class Triangle { private: //三个顶点 vector<CvPoint2D32f> p; bool isPosChanged; bool isSizeChanged; public: Triangle() { for(int i = 0; i < 3; ++i) { p.push_back(cvPoint2D32f(0.f, 0.f)); } } Triangle(vector<CvPoint2D32f> points) { for(int i = 0; i < points.size(); ++i) { p.push_back(points[i]); } isPosChanged = false; isSizeChanged = false; } ~Triangle() { p.~vector(); } bool inline getSizeChanged() { return isSizeChanged; } bool inline getPosChanged() { return isPosChanged; } CvPoint2D32f getPeakPoint(int i) { return