我正在制作一个 mfc 应用程序来制作某种绘图机制。使用折线,用户可以绘制图形,并且在按下回车键时,线的当前点连接到起点[形成一个封闭的多边形]。我想你应该已经明白了。现在,我使用 STL 数组来存储多边形的每个顶点——简单来说,在绘制图形时单击鼠标左键的每个点都存储在数组中。
std::array<CPoint,11> v; //vertices
我使用以下机制来输出这个数组的元素,即点:
for(int j=0 ; j<v.size() ; j++ )
{
s.Format(L"%d %d\n",v[j].x, v[j].y);
aDC.TextOutW(x+=20,y+=20,s ); //each time print the coordinates
s=" "; //at a different location
}
在执行过程中,当用户通过单击屏幕周围的点来绘制图形时,这些点将存储在数组中。数组声明有 12 个元素,但形状很少有 12 个顶点。元素的其余部分(空元素)保持 (0,0)- 但这些元素在循环中输出。所以我打印的是 3-4 个坐标和很多 (0,0)s。有没有办法只打印存储顶点的那些元素(我希望你明白我的意思)。类似的东西vertices[n]=/*some character that signifies the last element*/
。我的问题是,这个角色会是什么?就像字符串中的 '\0'。