コード例 #1
0
        /// <summary>
        /// Extends a straight line at both ends
        /// </summary>
        /// <param name="line"></param>
        /// <param name="distance"></param>
        /// <search></search>
        public static Autodesk.DesignScript.Geometry.Line ExtendAtBothEnds(this Autodesk.DesignScript.Geometry.Curve line, double distance)
        {
            Autodesk.DesignScript.Geometry.Point stPt  = line.StartPoint;
            Autodesk.DesignScript.Geometry.Point endPt = line.EndPoint;

            Autodesk.DesignScript.Geometry.Vector vec1 = Autodesk.DesignScript.Geometry.Vector.ByTwoPoints(endPt, stPt);
            Autodesk.DesignScript.Geometry.Vector vec2 = Autodesk.DesignScript.Geometry.Vector.ByTwoPoints(stPt, endPt);

            Autodesk.DesignScript.Geometry.Point newStPt  = stPt.Translate(vec1, distance) as Autodesk.DesignScript.Geometry.Point;
            Autodesk.DesignScript.Geometry.Point newEndPt = endPt.Translate(vec2, distance) as Autodesk.DesignScript.Geometry.Point;

            Autodesk.DesignScript.Geometry.Line newLine = Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint(newStPt, newEndPt);

            //Dispose redundant geometry
            stPt.Dispose();
            endPt.Dispose();
            vec1.Dispose();
            vec2.Dispose();
            newStPt.Dispose();
            newEndPt.Dispose();

            return(newLine);
        }