(已解决)poly2tri - 三角形的IsInterior属性 - 正确配置

hculpa 发布于 4 天前 c# 最后更新 4 天前 1 浏览

我想画洞洞。 result I wanna 要做到这一点,我必须将图切成三角形并逐一绘制。 triangulated picture 这里我有八个外部三角形和两个内部。我想,我只会采取外在的方式并且像他们一样

const int y = 100;
const int x = 100;
const int offset = 20;
IList<PolygonPoint> bounds = new List<PolygonPoint>
{
    new PolygonPoint(0,0),
    new PolygonPoint(0, y),
    new PolygonPoint(x, y),
    new PolygonPoint(x, 0),
};
IList<PolygonPoint> hole = new List<PolygonPoint>
{
    new PolygonPoint(offset, offset),
    new PolygonPoint(x - offset, offset),
    new PolygonPoint(offset, y - offset),
    new PolygonPoint(x - offset, y - offset),
};
Polygon polygon = new Polygon(bounds); // here polygon contains four dots
polygon.AddHole(new Polygon(hole)); // and here - eight
P2T.Triangulate(polygon); // here I get ten triangles
foreach (var triangle in polygon.Triangles.Where(tr => tr.IsInterior)) // <-- problem
{
    // draw
}
但是多边形中的每个三角形都具有IsInterior == true。我做错了什么? 附:对于PointSet,这个属性在相同情况下总是为false。
已邀请:

umodi

赞同来自:

该死的,这更容易,我想。 我错了点订单。 它必须是

IList<PolygonPoint> hole = new List<PolygonPoint>
{
    new PolygonPoint(offset, offset),
    new PolygonPoint(offset, y - offset),
    new PolygonPoint(x - offset, y - offset),
    new PolygonPoint(x - offset, offset),
};
除了这部分以外的所有工作都很好,结果如下: correct triangles 谢谢大家都来了!