这是个绘制实心多边型的函式,OpenCV的说明上声称比cvFillPoly()同样是绘制实心多边型的函式还快,而且,这个函式的制作比cvFillPoly()还简单.要绘制它时,当然,需要多个点,多边型,需要三个以上的顶点,然后依着顶点顺序来做多边型的绘制,并且选定想绘制几个顶点的多边型,选定颜色,种类等其他的.
- cvFillConvexPoly( )函式的实作
- #include <cv.h>
- #include <highgui.h>
- IplImage *Image1;
- CvPoint PointArray1[6];
- CvScalar Color;
- int PolyVertexNumber;
- int Shift;
- int main()
- {
- CvSize ImageSize1 = cvSize(1000 ,700);
- Image1 = cvCreateImage(ImageSize1, IPL_DEPTH_8U, 3);
- PointArray1[0]=cvPoint(200,200);
- PointArray1[1]=cvPoint(400,150);
- PointArray1[2]=cvPoint(650,230);
- PointArray1[3]= cvPoint(800,300);
- PointArray1[4]=cvPoint(900,550);
- PointArray1[5]=cvPoint(100,500);
- CvScalar Color=CV_RGB(255,0,0);
- PolyVertexNumber=6;
- Shift=0;
- cvFillConvexPoly(Image1,PointArray1 ,PolyVertexNumber,Color,CV_AA,Shift);
- cvNamedWindow("FillC onvexPoly",0);
- cvShowImage("FillConvexPoly",Image1);
- cvWaitKey(0);
- }
这个绘图函式真的比cvFillPoly()简单的多了!内部使用的演算法也不一样,总而言之,给定点座标集合,多边型顶点数,颜色,线条种类,比例缩放,就可以绘出多边型了,而执行结果,表示的是不同多边型顶点数的执行结果.由图可知,它的演算法是照着点阵列的排列的顺序来的.
cvFillConvexPoly()
利用点阵列集合绘制多边型,并且给它多边型的顶点数,它会依照阵列的顺序去制作多边型图案如果顺序给的绘不出多边型,则会乱掉.
cvFillConvexPoly(IplImage资料结构,CvPoint阵列,多边型顶点数,CvScalar颜色,线条类型,比例缩放数据)