C# 最小权三角剖分#
我目前有一个问题,生成一些分散的点,并将它们绘制到画布上。我试图获得生成点的MWT,但我的实现一直拒绝我绘制的一些线,好像它们是相交的。 这是我目前的代码:C# 最小权三角剖分#,c#,C#,我目前有一个问题,生成一些分散的点,并将它们绘制到画布上。我试图获得生成点的MWT,但我的实现一直拒绝我绘制的一些线,好像它们是相交的。 这是我目前的代码: daljiceL = daljiceL.OrderBy(d => d.Item2).ToList(); triang.Add(daljiceL[0].Item1); for(int i = 0; i < daljiceL.Count(); i++) {
daljiceL = daljiceL.OrderBy(d => d.Item2).ToList();
triang.Add(daljiceL[0].Item1);
for(int i = 0; i < daljiceL.Count(); i++)
{
/*if(triang.Count() > (3* Convert.ToInt32(points.Text) - 3 - hull.Count()))
{
break;
}*/
for(int j = 0; j < triang.Count(); j++)
{
double D = (daljiceL[i].Item1.X2 - daljiceL[i].Item1.X1)*(triang[j].Y2 - triang[j].Y1) - (triang[j].X2 - triang[j].X1)*(daljiceL[i].Item1.Y2 - daljiceL[i].Item1.Y1);
double A = (triang[j].X2 - triang[j].X1) * (daljiceL[i].Item1.Y1 - triang[j].Y1) - (daljiceL[i].Item1.X1 - triang[j].X1) * (triang[j].Y2 - triang[j].Y1);
double B = (daljiceL[i].Item1.X2 - daljiceL[i].Item1.X1) * (daljiceL[i].Item1.Y1 - triang[j].Y1) - (daljiceL[i].Item1.X1 - triang[j].X1) * (daljiceL[i].Item1.Y2 - daljiceL[i].Item1.Y1);
double Ua = A / D;
double Ub = B / D;
if( 0 <= Ua && Ua <= 1 && 0 <= Ub && Ub <= 1)
{
seka = true;
break;
}
}
if(seka == true)
{
seka = false;
}
else
{
triang.Add(daljiceL[i].Item1);
}
}
daljiceL=daljiceL.OrderBy(d=>d.Item2.ToList();
Add(daljiceL[0].Item1);
对于(int i=0;i(3*Convert.ToInt32(points.Text)-3-hull.Count())
{
打破
}*/
对于(int j=0;j