コード例 #1
0
        private IVector GetClosingVector(List <IVector3D> TraverseCourses, IPoint StartPoint, IPoint EndPoint, out double SUMofLengths)
        {
            IVector SumVec = null;

            SUMofLengths = 0;
            for (int i = 0; i < TraverseCourses.Count - 1; i++)
            {
                if (i == 0)
                {
                    SUMofLengths = TraverseCourses[0].Magnitude + TraverseCourses[1].Magnitude;
                    SumVec       = TraverseCourses[0].AddVector(TraverseCourses[1]);
                }
                else
                {
                    IVector3D SumVec3D = SumVec as IVector3D;
                    SUMofLengths += TraverseCourses[i + 1].Magnitude;
                    SumVec        = SumVec3D.AddVector(TraverseCourses[i + 1]);
                }
            }

            double dCalcedEndX = StartPoint.X + SumVec.ComponentByIndex[0];
            double dCalcedEndY = StartPoint.Y + SumVec.ComponentByIndex[1];

            IVector3D CloseVector3D = new Vector3DClass();

            CloseVector3D.SetComponents(dCalcedEndX - EndPoint.X, dCalcedEndY - EndPoint.Y, 0);

            IVector CloseVector = CloseVector3D as IVector;

            return(CloseVector);
        }