Example #1
0
        /// <summary>
        /// Sets the circle to be the maximum contained circle within the triangle.
        /// </summary>
        /// <param name="Triangle">The triangle to bound the circle.</param>
        public void SetInscribed(C2DTriangle Triangle)
        {
            C2DPoint InCen = Triangle.GetInCentre();

            C2DLine Line = new C2DLine(Triangle.P1, Triangle.P2);

            C2DVector vec     = new C2DVector(Line.point, InCen);
            double    dProj   = vec.Dot(Line.vector);
            double    dLength = Line.vector.GetLength();

            dProj /= dLength;

            double dFactor = dProj / dLength;

            C2DVector vProj = new C2DVector(Line.vector);

            vProj.Multiply(dFactor);
            C2DPoint ptOnLine = new C2DPoint(Line.point.x + vProj.i, Line.point.y + vProj.j);

            Set(InCen, InCen.Distance(ptOnLine));
        }
Example #2
0
 /// <summary>
 /// InCentre function.
 /// </summary>
 public C2DPoint GetInCentre()
 {
     return(C2DTriangle.GetInCentre(P1, P2, P3));
 }
        /// <summary>
        /// Sets the circle to be the maximum contained circle within the triangle.
        /// </summary>
        /// <param name="Triangle">The triangle to bound the circle.</param> 
        public void SetInscribed(C2DTriangle Triangle)
        {
            C2DPoint InCen = Triangle.GetInCentre();

            C2DLine Line = new C2DLine( Triangle.P1, Triangle.P2  );

            C2DVector vec = new C2DVector(Line.point, InCen );
            double dProj = vec.Dot(Line.vector);
            double dLength = Line.vector.GetLength();
            dProj /= dLength;

            double dFactor = dProj / dLength;

            C2DVector vProj = new C2DVector(Line.vector);
            vProj.Multiply(dFactor);
            C2DPoint ptOnLine = new C2DPoint(Line.point.x + vProj.i,Line.point.y + vProj.j) ;

            Set(InCen, InCen.Distance( ptOnLine));
        }