Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="p0"></param>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <returns></returns>
        public static Vec3d GetIncenter(Vec3d p0, Vec3d p1, Vec3d p2)
        {
            double d01      = p0.DistanceTo(p1);
            double d12      = p1.DistanceTo(p2);
            double d20      = p2.DistanceTo(p0);
            double perimInv = 1.0 / (d01 + d12 + d20); // inverse perimeter

            return(p0 * (d12 * perimInv) + p1 * (d20 * perimInv) + p2 * (d01 * perimInv));
        }