繁体   English   中英

VTK:使用 vtkDelaunay2D 渲染凹多边形

VTK: render concave polygon with vtkDelaunay2D

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想使用 vtkDelaunay2D 渲染一个凹多边形。 我读过它应该与 vtkDelaunay2D 一起使用,但它没有。 为什么? 这是我的代码:

import vtk

points = vtk.vtkPoints()

ls = [
    [5, 5], [-5, 5], [-8, 0], [-5, -5], [5, -5], [2, 0]
]
for x, y in ls:
    points.InsertNextPoint(x, y, 0)

aPolyData = vtk.vtkPolyData()
aPolyData.SetPoints(points)

delaunay = vtk.vtkDelaunay2D()
delaunay.SetInputData(aPolyData)

meshMapper = vtk.vtkPolyDataMapper()
meshMapper.SetInputConnection(delaunay.GetOutputPort())

colors = vtk.vtkNamedColors()

meshActor = vtk.vtkActor()
meshActor.SetMapper(meshMapper)
meshActor.GetProperty().EdgeVisibilityOn()
meshActor.GetProperty().SetEdgeColor(colors.GetColor3d("Peacock"))
meshActor.GetProperty().SetInterpolationToFlat()

renderer = vtk.vtkRenderer()
renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)

renderer.AddActor(meshActor)
renderer.SetBackground(colors.GetColor3d("Mint"))

renderWindow.SetSize(640, 480)
renderWindow.Render()
renderWindowInteractor.Start()

结果如下所示:

结果

右侧的三角形不应该在那里。

那么为什么会发生这种情况呢? 我该怎么做才能避免这种情况发生?

2 个回复

文档(特别是Warning部分)来看,输出预计是凸面的。

作为您示例的解决方法,减少过滤器的Offset值会导致您想要的结果(例如delaunay.SetOffset(0.1) )。 但由于过滤器不打算这样做,因此可能会产生意想不到的结果。

您可以使用delaunay.SetSourceData(polyline)添加包含定义边界的线的逆时针多边形数据,然后您会得到所需的结果:

在此处输入图片说明

但这仅在您假设您知道边界时才有效

1 VTK:使用 vtkDelaunay2D 创建多边形和孔不起作用

我想在 VTK 中渲染一个带洞的多边形。 我发现 vtkDelaunay2D 类应该可以解决问题。 我按照这里的教程vtkDelaunay2D Example并且它工作得很好。 之后我尝试用不同的孔创建不同的多边形。 我不明白为什么它不起作用,想知道我必须改变什么。 这就是它的样子。 这就是 ...

2 使用 r 将凹多边形转换为凸多边形

我正在尝试使用 r 将凹多边形拆分为凸多边形。 我试图弄清楚如何为一个多边形成功完成此操作,并希望以自动方式在大量多边形上实现此功能。 到目前为止我能想到的唯一方法是使用三角剖分将这个形状分解成几个更小的形状,然后将它们组合成一些最小数量的凸多边形。 这是我得到的。 是否有一种巧妙/ ...

3 VTK无法正确渲染多边形

我有一个VTK 6.3程序,我已经提炼到下面的列表。 当我运行它时,渲染的多边形是不正确的。 它应该是一个四边形,旁边有另一个连接的四边形,而不是这个古怪的东西: 看起来多边形三角剖分是错误的,当你旋转多边形时,一个流氓三角形会闪烁。 我相信我的多边形已经正确指定:逆时 ...

4 分选点:凹多边形

我有一组点,我试图按照ccw顺序排序或从他们的角度顺序排序。 我希望点的排序方式可以形成一个多边形,在其区域或交叉点没有分割。 这很困难,因为在大多数情况下,它将是凹多边形。 看起来这些点被准确地排序(粉红色)直到它们“陷入”,在这种情况下算法跳过这些点然后继续..任何人都可以指向正 ...

5 如何将轮廓添加到2d凹多边形?

我成功地绘制了凸多边形,构成了下面的白色凹面形状。 橙色是我尝试在白色形状周围添加均匀轮廓。 正如你所看到的那样,它并不那么统一。 在某些边缘,橙色根本不显示。 显然使用...... ...在我画出白色形状之前绘制一个略大的橙色形状是不可取的。 我只是有一种唠叨的 ...

7 创建二维凹多边形的笛卡尔网格的算法

我有一个带有 n 个孔的 2d 凹多边形,其中每个孔都可以包含另一个 m 个多边形。 是否有任何(最好是简单的)算法来创建这个多边形的笛卡尔网格(矩形网格)? 或者是否有任何python库已经可以做到这一点? ...

8 使用VTK提取网格的点和多边形

我想减少网格(STL文件)中三角形的数量。 这是我的代码: 它似乎有效(至少它运行没有错误)。 现在如何提取网格的点和三角形? ...

9 使用Opencv python从图像中裁剪凹多边形

如何从图像中裁剪凹多边形。 我的输入图像看起来像 . 闭合多边形的坐标为[10,150],[150,100],[300,150],[350,100],[310,20],[35,10]。 我希望使用 opencv 裁剪以凹多边形为边界的区域。 我搜索了其他类似的问题,但找不到正确的答案。 这就是我问 ...

10 VTK:显示细分的多边形

我创建了一个二十面体并将其细分,我没有尝试显示它,但似乎未显示它。 这是我的代码: 控制台输出为: 确认确实已细分。 ...

2013-07-11 17:02:26 1 167   vtk
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM