gpt4 book ai didi

c# - 以编程方式链接所有点

转载 作者:太空狗 更新时间:2023-10-29 23:46:07 25 4
gpt4 key购买 nike

重写:关于这个问题我没有得到太多反馈,我想我没有正确地写它并且正在尝试澄清。

我正在制作一个程序,让人们创建国家。下图中的粗红线是上述国家的边界​​。我想弄清楚如何生成一个多边形来填充“边界”线内的整个区域。我有接受多边形工作的三角剖分代码 - 我用手动输入的多边形测试了它 - 现在我试图弄清楚如何从线/链接点生成多边形。

enter image description here

enter image description here

有关更多信息 - 所有红线都是黄点连接在一起的方式。用户将黄点拖在一起以链接线条。多边形内部可能有一个洞并且是开放的 - 我想要做的是编写代码来处理开放的多边形和内部有洞的多边形并生成所有黄点位置的输出(vector3's with x 和 z因为它位于 y 平面上的 0 处)用于我的三角测量代码。

我仍在寻找解决这个问题的方法,但我什至还没有想出从哪里开始寻找解决方案。感谢所有帮助。

下面是老问题

我正在尝试找到一种将点链接在一起以形成内部多边形的方法。基本上,我正在创建一个程序,让人们将线路连接在一起。闭合多边形制作完成后,应该在线内生成一个新的多边形对象。

我不太确定该怎么做 - 我已经做到了,所以他们可以生成线条并将它们连接在一起,但是我不知道如何做一个封闭的多边形。我看了看凸包,但这不一样,并尝试寻找或想出一些似乎不起作用的不同东西。我很好奇是否有人可以指出我的写作方向/教程或关于如何继续我的创作的想法。

我上传了两张图片来帮助展示我的观点。

enter image description here

enter image description here

以上是我正在尝试做的,但不太确定如何 - 基本上,当用户完成一个封闭的多边形(所有黄点都是多边形的外部点)时,我希望它生成一个内部多边形(由黑色 1、2 和 3)。

最佳答案

您可能对Polylines感兴趣.这可以帮助您避免对图论进行大量研究。与 Polygon 类一样,您可以填充 Polyline 对象。 The documentation说:

This object is similar to the Polyline object, except that this object must be a closed shape.

由于您希望您的形状是“开放的”,这可以帮助您。

链接的手册页甚至包括如何以编程方式创建折线的示例:

// Add the Polyline Element
myPolyline = new Polyline();
myPolyline.Stroke = System.Windows.Media.Brushes.SlateGray;
myPolyline.StrokeThickness = 2;
myPolyline.FillRule = FillRule.EvenOdd;
System.Windows.Point Point4 = new System.Windows.Point(1, 50);
System.Windows.Point Point5 = new System.Windows.Point(10, 80);
System.Windows.Point Point6 = new System.Windows.Point(20, 40);
PointCollection myPointCollection2 = new PointCollection();
myPointCollection2.Add(Point4);
myPointCollection2.Add(Point5);
myPointCollection2.Add(Point6);
myPolyline.Points = myPointCollection2;
myGrid.Children.Add(myPolyline);

你的第二个要求是,你的形状可以有“洞”。

请注意,您不必负责填充多段线。通过设置 myPolyline.FillRule,您可以在形状内部设置“孔洞”。查看Polyline.FillRule MSDN 上的页面,显示:

EvenOdd and NonZero fillrule example

如果您对如何打“洞”有更多的愿望,请查看 Geometry.Combine方法,尤其是 GeometryCombineMode .

演示 GeometryCombineModes 的示例...

An example that demonstrates GeometryCombineModes

玩得开心:)

图片和代码为示例内容,由微软提供,摘自MSDN。重复使用时请注意版权,可通过给定链接获得。为了在这里使用这些内容,我想引用 Microsoft Limited Public License .

关于c# - 以编程方式链接所有点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com