我试图从5个点绘制一个封闭的多边形,我正在尝试使用以下代码:
CImg<float> img(800,800,1,3);
float red[] = {1.0f,0.0f,0.0f};
CImg<int> points(5,2);
int thePoints[] = {40,40,40,200,100,180,120,100,100,40};
int *iterator = thePoints;
cimg_forXY(points,x,y)
points(x,y) = *iterator++;
img.draw_polygon(points,red).display();
我试图以ccw顺序给出点,但是我没有按预期得到多边形。 我得到的是:
如何按预期生成多边形?如何给出积分作为输入? ccw或cw命令或任意命令?
答案 0 :(得分:2)
您实际上错误地定义了变量points
。它应该像这样填充:
cimg_forX(points,i) { points(i,0) = *(iterator++); points(i,1) = *(iterator++); }
可以按顺时针或逆时针顺序指定点。