/// <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); } }
/// <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; } }