CImg如何从给定的x,y坐标绘制多边形?

时间:2013-09-20 10:10:30

标签: cimg

我试图从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顺序给出点,但是我没有按预期得到多边形。Expected 我得到的是:Found

如何按预期生成多边形?如何给出积分作为输入? ccw或cw命令或任意命令?

1 个答案:

答案 0 :(得分:2)

您实际上错误地定义了变量points。它应该像这样填充:

cimg_forX(points,i) { points(i,0) = *(iterator++); points(i,1) = *(iterator++); }

可以按顺时针或逆时针顺序指定点。