poly2tri - 三角形的 IsInterior 属性 - 正确配置
poly2tri - triangle's IsInterior property - properly configuration
我想画有洞的图形。
为此,我必须将图形切割成三角形并一张一张地绘制。
这里我有八个外部三角形和两个内部三角形。我想,我只会拍外景,然后把它们画成这样
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。我做错了什么?
P.S。对于 PointSet,此 属性 在相同情况下始终为 false。
妈的,这比我想的要简单。
我点错了。
必须
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),
};
除此部分外,其他都运行良好,结果如下所示:
感谢大家的光临!
我想画有洞的图形。
为此,我必须将图形切割成三角形并一张一张地绘制。
这里我有八个外部三角形和两个内部三角形。我想,我只会拍外景,然后把它们画成这样
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。我做错了什么?
P.S。对于 PointSet,此 属性 在相同情况下始终为 false。
妈的,这比我想的要简单。
我点错了。
必须
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),
};
除此部分外,其他都运行良好,结果如下所示:
感谢大家的光临!