我正在使用GPC Polygon Clipping lib并希望以编程方式创建多边形。我只看到如何从文件创建一个代码。我如何在我的代码中进行初始化?GPC多边形初始化
3
A
回答
0
从您的链接中读取更好,找到doc页面并阅读;特别是gpc_add_contour
函数可能是你需要的。该结构gpc_vertex_list具有指向gpc_vertex-S和顶点的数量,并且是必须填写的内容。像
gpc_polygon p = {0, NULL, NULL}; // "void" polygon
gpc_vertex v[] = { {0.0, 0.0}, {10.0, 0.}, {10.0, 10.10}, {0.0, 10.0} };
gpc_vertex_list vl = {
4, v
};
//...
gpc_add_contour(&p, &vl, 0);
的文档是不是太多明确,但可以推断的使用和测试(尝试错误循环)是你的朋友(我不会安装gpc来做它,所以我的代码可能是错误的)。建议的代码片段应该创建一个正方形。其他几个gpc_add_countour
与& p相同,但不同的顶点列表可用于创建更复杂的多边形,当然也可以更改vl以在开始时使用更复杂的多边形。如果要将定义的轮廓作为当前(p)多边形中的“孔”,则第三个参数应为1。
0
gpc_polygon subject;
int w = 100, h = 100, verticesCnt = 30;
//setup a gpc_polygon container and fill it with random vertices ...
subject.num_contours = 1;
subject.hole = 0;
subject.contour = new gpc_vertex_list; //ie just a single polygon here
subject.contour->num_vertices = verticesCnt;
subject.contour->vertex = new gpc_vertex [verticesCnt];
for (i = 0; i < verticesCnt; i++){
subject.contour[0].vertex[i].x = random(w);
subject.contour[0].vertex[i].y = random(h);
}
//do stuff with it here, then ...
gpc_free_polygon(&subject);
相关问题
- 1. GoogleMapsAPI - 在初始化后更改多边形的strokeColor
- 2. GPC多边形裁剪机是否进行三角测量?
- 3. 初始化和图形
- 4. 缺省初始化形成
- 5. 末多初始化
- 6. 如何创建一个用于Math :: Geometry :: Planar :: GpcClip的GPC多边形?
- 7. 如何在Raphael Javascript中对多边形执行初始操作?
- 8. 在Ada中初始化数组边界
- 9. 构建用边界初始化的UIButton
- 10. 孵化2D多边形
- 11. 栅格化2D多边形
- 12. 简化相邻多边形
- 13. 初始化多个SKSpriteNode
- 14. TimerService EJB初始化多次
- 15. 太多初始化错误
- 16. 初始化多维数组
- 17. 多维向量初始化
- 18. 太多初始化值
- 19. 初始化多维数组
- 20. 初始化多个指令
- 21. 函数初始化和对象初始化(多处理)
- 22. VBA:多维阵列初始化溢出错误初始化
- 23. 用数组或初始化初始化一个NSMutableArray初始化
- 24. 初始化,初始化与参数和便利初始化
- 25. 多边形三角形计数优化
- 26. java中的初始化初始化
- 27. 初始化在初始化列表
- 28. 直接初始化与值初始化
- 29. 初始化含有初始化列表
- 30. 值初始化vs集合初始化