예제 #1
0
        //生成随机点集
        List <IPosition> createPointSet(double pointCount)
        {
            RandomPositionSet_InFixedDistribution positionSet = new RandomPositionSet_InFixedDistribution((int)pointCount, dStyle);

            List <IPosition> posList = new List <IPosition>();

            positionSet.InitToTraverseSet();
            while (positionSet.NextPosition())
            {
                KD2DPoint point = new KD2DPoint(positionSet.GetPosition());
                posList.Add(point);
            }

            return(posList);
        }
예제 #2
0
        List <IPosition> createPointSetWithPrepare(double pointCount)
        {
            RandomPositionSet_InFixedDistribution positionSet = new RandomPositionSet_InFixedDistribution((int)pointCount, dStyle);

            List <IPosition> posList = new List <IPosition>();

            minX = float.MaxValue;
            minY = float.MaxValue;
            maxX = float.MinValue;
            maxY = float.MinValue;

            positionSet.InitToTraverseSet();
            while (positionSet.NextPosition())
            {
                KD2DPoint point = new KD2DPoint(positionSet.GetPosition());
                posList.Add(point);

                if (minX > point.GetX())
                {
                    minX = point.GetX();
                }
                else if (maxX < point.GetX())
                {
                    maxX = point.GetX();
                }

                if (minY > point.GetY())
                {
                    minY = point.GetY();
                }
                else if (maxY < point.GetY())
                {
                    maxY = point.GetY();
                }
            }

            runM2MNNPP(0, posList);
            runKDTNNPP(0, posList);
            return(posList);
        }