示例#1
0
        /***************************************************/

        public static ICurve ProjectAlong(this Circle circle, Plane plane, Vector vector)
        {
            if (circle.Normal.IsParallel(plane.Normal) != 0)
            {
                return new Circle {
                           Centre = circle.Centre.ProjectAlong(plane, vector), Normal = circle.Normal.DeepClone(), Radius = circle.Radius
                }
            }
            ;

            TransformMatrix project = Create.ProjectionMatrix(plane, vector);

            return(circle.Transform(project));
        }
示例#2
0
        /***************************************************/

        public static ICurve Project(this Ellipse ellipse, Plane p)
        {
            TransformMatrix project = Create.ProjectionMatrix(p, p.Normal);

            return(ellipse.Transform(project));
        }
示例#3
0
        /***************************************************/

        public static ICurve ProjectAlong(this Ellipse ellipse, Plane plane, Vector vector)
        {
            TransformMatrix project = Create.ProjectionMatrix(plane, vector);

            return(ellipse.Transform(project));
        }