コード例 #1
0
ファイル: zz2DPoint.cs プロジェクト: Seraphli/TheInsectersWar
    public zz2DPoint(zzPainterPoint painterPoint)
    {
        autoCheckConvex = true;
        Vector3 lPos = painterPoint.transform.position;
        mPosition.x = lPos.x;
        mPosition.y = lPos.y;
        used = false;
        mDiagonals = new List<zz2DLine>();

        painterPoint.pointInfo = this;
    }
コード例 #2
0
ファイル: zzPolygon.cs プロジェクト: Seraphli/TheInsectersWar
    public void addShape(zzPainterPoint[] points)
    {
        if (points.Length < 3)
            return;
        zz2DPoint lFirstPoint = new zz2DPoint(points[0]);
        mPoints.Add(lFirstPoint);
        zz2DPoint lPrePoint = addPoint(points[1], lFirstPoint);
        for (int i = 2; i < points.Length; ++i)
        {
            zz2DPoint lNewPoint = addPoint(points[i], lPrePoint);

            //若新的点在之前的线右边,则之前的角为凸角;
            //zz2DPoint.LeftOrRight(
            //lPrePoint.previousPoint.position,
            //lPrePoint.position,
            //lNewPoint.position) < 0;//lPrePoint's next point is lNewPoint

            lPrePoint = lNewPoint;
        }
        zz2DPoint lLastPoint = lPrePoint;

        zz2DLine lLastLine = new zz2DLine(lPrePoint, lFirstPoint);
        mLines.Add(lLastLine);

        //lLastPoint.convexAngle = zz2DPoint.LeftOrRight(
        //    lLastPoint.previousPoint.position,
        //    lLastPoint.position,
        //    lLastPoint.nextPoint.position) < 0;

        //lFirstPoint.convexAngle = zz2DPoint.LeftOrRight(
        //    lFirstPoint.previousPoint.position,
        //    lFirstPoint.position,
        //    lFirstPoint.nextPoint.position) < 0;

        //sortPoint(mPoints);
    }
コード例 #3
0
ファイル: zzPolygon.cs プロジェクト: Seraphli/TheInsectersWar
 private zz2DPoint addPoint(zzPainterPoint pointPos, zz2DPoint lPrePoint)
 {
     zz2DPoint lPoint = new zz2DPoint(pointPos);
     mPoints.Add(lPoint);
     zz2DLine lLine = new zz2DLine(lPrePoint, lPoint);
     mLines.Add(lLine);
     lPrePoint = lPoint;
     return lPoint;
 }
コード例 #4
0
 public static zzSimplyPolygon toPolygon(zzPainterPoint pPoint)
 {
     zzSimplyPolygon lOut = new zzSimplyPolygon();
     List<Vector2> lPoints = new List<Vector2>();
     zzPainterPoint lNowPoint = pPoint;
     do
     {
         Vector3 l3DPoint = lNowPoint.transform.position;
         lPoints.Add(new Vector2(l3DPoint.x, l3DPoint.y));
         lNowPoint = lNowPoint.nextPoint;
     }
     while (lNowPoint != pPoint);
     lOut.setShape(lPoints.ToArray());
     return lOut;
 }