Example #1
0
        /// <summary>
        /// 用图形界面坐标系,转化为元胞坐标系,create a shape of a lane
        /// </summary>
        /// <param name="eShape"></param>
        internal void CreateShape()
        {
            EntityShape prant = this.Container.Shape;
            var         pNorm = VectorTool.GetNormal(this.Container.ToVector());

            foreach (var point in prant)
            {
                int iScaler  = this.Rank;
                var newPoint = Coordinates.Offset(point, OxyzPointF.Muilt(pNorm, iScaler));
                this.Shape.Add(newPoint);
            }
        }
Example #2
0
            /// <summary>
            /// move shape by  "scaler" steps with its normal vector
            /// </summary>
            /// <param name="iScaler"></param>
            public void Offset(int iScaler)
            {
                Point  vector = VectorTool.GetNormal(this.Start, this.End);
                double dWidth = iScaler;
                Point  temp   = new Point();

                for (int i = 0; i < this.Count; i++)
                {
                    temp = this[i];                                //value copy
                    Coordinates.Offset(ref temp, iScaler, vector); //ref copy
                    this[i] = temp;
                }
            }