Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 最小权三角剖分#_C# - Fatal编程技术网

C# 最小权三角剖分#

C# 最小权三角剖分#,c#,C#,我目前有一个问题,生成一些分散的点,并将它们绘制到画布上。我试图获得生成点的MWT,但我的实现一直拒绝我绘制的一些线,好像它们是相交的。 这是我目前的代码: daljiceL = daljiceL.OrderBy(d => d.Item2).ToList(); triang.Add(daljiceL[0].Item1); for(int i = 0; i < daljiceL.Count(); i++) {

我目前有一个问题,生成一些分散的点,并将它们绘制到画布上。我试图获得生成点的MWT,但我的实现一直拒绝我绘制的一些线,好像它们是相交的。 这是我目前的代码:

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