首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用CGAL::draw绘制多个多边形

CGAL(Computational Geometry Algorithms Library)是一个用于计算几何算法的开源库。它提供了丰富的功能和数据结构,用于解决各种计算几何问题。其中,CGAL::draw是CGAL库中的一个函数,用于绘制多边形。

使用CGAL::draw绘制多个多边形的步骤如下:

  1. 引入CGAL库和相关头文件:
代码语言:txt
复制
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/draw_polygon_2.h>
  1. 定义多边形的顶点坐标:
代码语言:txt
复制
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef K::Point_2 Point_2;

std::vector<Point_2> polygon1; // 第一个多边形的顶点坐标
std::vector<Point_2> polygon2; // 第二个多边形的顶点坐标
// ...
  1. 绘制多边形:
代码语言:txt
复制
CGAL::draw_polygon_2(polygon1.begin(), polygon1.end()); // 绘制第一个多边形
CGAL::draw_polygon_2(polygon2.begin(), polygon2.end()); // 绘制第二个多边形
// ...

以上代码将绘制多个多边形,你可以根据需要定义更多的多边形并进行绘制。

CGAL::draw_polygon_2函数的参数是一个迭代器范围,表示多边形的顶点坐标。你可以通过添加或修改顶点坐标来定义不同形状的多边形。

CGAL库提供了丰富的几何算法和数据结构,可以用于解决各种计算几何问题,例如凸包计算、点定位、线段相交等。你可以参考CGAL官方文档(https://doc.cgal.org/latest/Manual/packages.html)了解更多功能和用法。

腾讯云没有直接与CGAL::draw相关的产品或服务,但腾讯云提供了强大的云计算基础设施和解决方案,可以用于支持计算几何算法的开发和部署。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于云计算的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用CGAL轻松检索两条相交多边形的相交线

如何使用CGAL轻松检索两条相交多边形的相交线(从第一个交点到最后一个交点)。看到图像的澄清,绿线是我想要的。...使用CGAL获取多边形相交线 Two intersecting polygons with intersection line 目前我使用下面的算法,在那里我得到的交集多边形,然后发现这是两个多边形的边界点...有人可以告诉我这是否是正确的方法,或者指出如何更好地做到这一点。 来源 2017-08-02 D.J. Klomp A 回答 2 将两个多边形的线段插入到2D排列中。然后找到具有度4的顶点。...= arr.end_vertices(); ++it) { if (4 == it->degree()) ... } 可以避开“段”名单的建设,而是直接将多边形细分成使用迭代器适配器的安排...(这是纯粹的通用编程,与CGAL无关。)

30640

【三维算法:CGAL

三维算法:CGAL 复制代码 头大啊,自己写三维算法太累了,还是引入开源库吧 CGAL是计算几何算法库,是一个大型C++库的几何数据结构和算法,如Delaunay三角网、网格生成、布尔运算的多边形以及各种几何处理算法...必须事先用cmake编译出 CGAL_Core-vc141 CGAL_ImageIO-vc141 CGAL_Qt5-vc141 CGAL-vc141 二.CGAL使用 1.创建点 线 面 //表示几何图元...Point_set_2 70.Point_set_3 71.Point_set_processing_3 72.Poisson_surface_reconstruction_3 73.Polygon //绘制多边形..._2.h> #define CGAL_USE_BASIC_VIEWER #ifdef CGAL_USE_BASIC_VIEWER #include <CGAL/draw_triangulation_2....::draw(p); return EXIT_SUCCESS; } //带洞的多边形 //draw_polygon_with_holes.cpp #include <CGAL/Exact_predicates_inexact_constructions_kernel.h

43420

android使用Path绘制多边形

在讲使用path绘制多边形时,讲下Canvas的translate(),rotate()方法的使用,本博客中会使用这方面的知识,先单独讲下,搞懂了这个,下面讲path绘制多边形就简单的多,我们知道每次我们使用...canvas.draw…()绘制什么图形的时候,都是创建了一个新的图层,如果不知道图层是啥意思,就去看下我之前写的关于canvas基础,有讲这方面的,其实你可以理解成每次新创建了一个activity,然后把这个...,默认都是透明的,否则你draw…2次,上次绘制的内容就被覆盖了,文字太苍白无力,就好像你对一个女孩说一千篇我爱你,还不如说你在杭州买了套房来的实际,就好像香港有一个电影中的台词是这么说的,这是一个最好的时代...现在讲下画多边形,先确定下思路: 1:把这个多边形的外切圆画出来当做一个辅助的参考目标, 2:计算多个点的坐标然后连接成一条线 如图分析: ?...还有一个问题就是如果所绘制的是多边形,但是好像形状不一样,怎么修改,这个时候只要旋转画布就行了,比如这张图片: ? 使用canvas.rotate(30);旋转30度后是这样的 ?

1.3K20

通过CGAL将一个多边形剖分成Delaunay三角网

利用这个特性,可以将一个多边形剖分成Delaunay三角网,开源工具CGAL就正好提供了这个功能。 2....实现 因为要显示三角网的效果,所以我在《使用QT绘制一个多边形》这篇博文提供的QT界面上进行修改,正好这篇文章提供的代码还实现了在QT中绘制多边形的功能。...关于网格化以及三角网剖分,在CGAL中提供了非常详尽繁复的解决方案,我这里选择了CGAL::refine_Delaunay_mesh_2这个接口,这个接口能够将多边形区域构建成一个Delaunay三角网...结果 在QT界面上绘制一个多边形,只用多边形上的点,最后的三角网格效果: ?...通过这篇博文《矢量线的一种栅格化算法》提供的栅格化算法,可以将一个多边形栅格化,这样就可以得到一个栅格多边形,通过这个算法网格化,最后的效果: ?

2.8K20

Matplotlib如何绘制多个子图

www.cnblogs.com/chenqionghe/p/12355018.html 说明:本文经作者授权转载,禁止二次转载 Matplotlib是Python的底层绘图工具,可定制性很强,很多人刚开始使用...如何绘制多个子图的图表?这次写个小短文来讲一讲。 fig和axis的区别? 相信不少小伙伴一开始都是直接用plt.plot来绘图,非常简单,但这是偷懒的做法,不建议大家这样。...fig相当于是一个大的画布,ax相当于是小的子图,一个画布可以有一个或多个子图。 单个图表任何操作都是在axes对象上进行的,包括坐标轴、刻度、图例等。 具体怎么用,下面讲到。...绘制多子图 使用Matplotlib绘图单图相对比较容易,但有时候需要将多张图放在一张图表里,这就用到子图操作。...explode=[0,0.05,0,0]) # 画第4个图:条形图 ax[1][1].bar([20,10,30,25,15],[25,15,35,30,20],color='b') plt.show() 绘制不规则子图

2.2K30

Python基础:使用Matplotlib绘制多个图形

使用Matplotlib,可以使用各种图表类型绘制数据,包括折线图、条形图、饼图和散点图。 Matplotlib允许绘制单个图表,但也允许以网格的形式一次绘制多个图表。...在本文中,将详细演示如何使用Matplotlib库绘制多个图。 绘制单个图 在展示如何绘制多个图之前,先通过一个演示如何使用Matplotlib绘制单个图的示例,确保掌握了基本原理。...如果不使用Jupyter笔记本,只需在开始绘制图之后添加plt.show()即可。 绘制多个图形 一旦知道怎么做,就可以绘制多个图了。同样,Matplotlib允许以网格的形式绘制多个图。...有几种方法可以做到这一点: 1.使用subplot()函数 2.使用subplots()函数 使用subplot()函数 要使用pyplot模块中的subplot()函数绘制多个绘图,需要执行两个步骤:...例如,下面的脚本使用plot()方法制作折线图。 这个脚本将使用subplot()函数在两行三列的网格中绘制六个折线图。

3.2K20

CGAL 计算两个凸多边形相交的面积

我正在使用 CGAL 计算两个凸多边形相交的面积。在对 this 的接受答案中发布了执行此操作的简短演示代码。问题。...但是,当我修改该代码以使用我感兴趣的多边形时,CGALCGAL::intersection() 例程的深处抛出运行时异常。...这是一个简短的示例代码,它是从上面链接的 SO 问题中复制粘贴的,除了它使用我自己的多边形并打印一些关于每个多边形的诊断信息以表明它们是凸面的并使用 CCW 绕组订单。...最佳答案 我可以重现此错误(在带有 clang++ 的 MacOS 上使用 CGAL 4.9)。据我了解,这种类型的未捕获异常不应该发生,换句话说,您发现了 CGAL 中的错误。...K; 并为 Area 和 totalArea 使用适当的类型(我只是使用了 auto 和 decltype(Area) ,分别),代码编译(你必须将它链接到 libgmp 和 libmpfr)并且运行没有崩溃

35140

CGAL功能大纲

CGAL功能大纲 Computational Geometry Algorithms Library,CGAL,计算几何算法库。使用C++语言编写的,提供高效、可控的算法库。...几何框架Geometry Kernels 主要讲述计算几何中如何表达几何模型 二维和三维线性几何框架2D and 3D Linear Geometry Kernel 这个包提供了多个几何框架,每个框架包含大小不变的对象...[带洞多边形拓扑规定]一个有洞的二维多边形称之为外轮廓,在其有界区域内有零个或多个轮廓,称为内轮廓或洞或孔。外轮廓的有界区域与内轮廓的无界区域的交点是带孔多边形的内部。...然后可以使用CGAL表面网格生成器从这个函数中提取等值面。...表面如何连接这些点取决于一个比例变量,它可以半自动地估计。

96310

Python之pygame学习绘制基本图形(3)

pygame.draw.rect 画一个矩形 pygame.draw.polygon 绘制一个多边形 pygame.draw.circle 画一个圆圈 pygame.draw.ellipse 绘制一个椭圆...pygame.draw.arc 画一个椭圆弧 pygame.draw.line 画一条直线 pygame.draw.lines 绘制多个连续的直线段 pygame.draw.aaline 绘制直线抗锯齿线...pygame.draw.aalines 绘制多个连续的直线抗锯齿线段 在表面绘制几个简单的形状。...color(Color或int 或tuple(int ,int ,int ,[ int]) 要绘制的颜色,使用元组(上篇讲过背景色相同),或者使用英文单词的如red之类的可用单词 rect(Rect)...,如果没有绘制任何东西,返回宽高为0代码演示: # 绘制一个多边形 pygame.draw.polygon(screen, clock, [(100, 100), (150, 100),

4K30

CGAL 一般多边形

CGAL 一般多边形 : rigid motions and area 标签 c++ geometry transformation area cgal 调查 this question ,我将不得不处理其边界由线段和圆弧组成的形状...为了计算面积,我可以使用鞋带方法的一种变体,并进行调整以应对圆弧。...手册中的示例打印了有关支持圈的详细信息,并深入挖掘了标题,我发现每个 curve因为我的多边形确实有一个 supporting_circle() 方法,所以我想它实际上是一个 Arr_circle_segment_traits...在使用故意的编译器错误消息来了解手册简单描述为 unspecified_type 的某些对象的类型之后,我才在标题中发现了这一点。 ....另一方面,CGAL 通过模板参数进行自定义的方式,我可能只是缺少一种方法来执行这些适用于圆形线段的操作,尽管它可能不适用于其他一般多边形。您知道我可以使用的任何快捷方式吗?

25650

在编程中发现数学之美——使用Python小龟绘制多边形

使用数学知识画出很酷的各种图形之前,你需要先学习Python编程语言的基础知识。本文将会带你熟悉以下编程概念:循环、变量、函数、使用小龟模块绘制图像。...练习1-3:绘制三角形。写triangle()函数,函数功能为绘制给定变长的三角形。 等边三角形 多边形是有多个边的图形。等边三角形是多边形的一种,有三条边且变长相等。 ?...练习1-4:写绘制多边形的函数。函数名字为polygon,参数为一个整数,函数功能是绘制多边形,边的条数为参数值。...总结 本文我们学习了使用Python的小龟模块turtle和它的内置函数forward()及right()。我们探索了使用这个两个函数绘制复杂有趣的图形。...本文我们还学校了如何定义自己的函数,自定义函数可以让我们实现代码复用。我们还学习了for循环。 练习1-6:星星的诞生。

3.8K51
领券