コード例 #1
0
ファイル: DCEL_HalfEdge.cs プロジェクト: SamarSamir9/dcel
        public Rational CycleArea()
        {
            Rational twiceSignedArea = 0;
            VecRat2  origin          = Origin.Position;

            foreach (DCEL_HalfEdge halfEdge in CycleNext)
            {
                twiceSignedArea += GeomAid.TriangleTwiceSignedArea(origin, halfEdge.Origin.Position, halfEdge.Destination.Position);
            }
            return(Rational.Abs(twiceSignedArea) / 2);
        }
コード例 #2
0
ファイル: VecRat2.cs プロジェクト: SamarSamir9/dcel
 public static VecRat2 AbsoluteDifference(VecRat2 u, VecRat2 v)
 {
     return(new VecRat2(Rational.Abs(u.X - v.X), Rational.Abs(u.Y - v.Y)));
 }
コード例 #3
0
ファイル: VecRat2.cs プロジェクト: SamarSamir9/dcel
 public static Rational ManhattanDist(VecRat2 u, VecRat2 v)
 {
     return(Rational.Abs(u.X - v.X) + Rational.Abs(u.Y - v.Y));
 }
コード例 #4
0
ファイル: GeomAid.cs プロジェクト: SamarSamir9/dcel
 public static Rational TriangleTwiceArea(VecRat2 a, VecRat2 b, VecRat2 c)
 {
     return(Rational.Abs(TriangleTwiceSignedArea(a, b, c)));
 }