public override void RotateClw() { base.RotateClw(); RotateAngle = 90; Matrix matrix = new Matrix(); PointF pt_center = PointF.Empty; Point[] pts = new Point[4]; pts[0] = center; pts[1] = firstDot; pts[2] = secDot; startAngle = (startAngle + 360) % 360; switch (startAngle) { case 0: directionCurved = DirectonCurved.first; pt_center.X = (float)(center.X + firstDot.X) / 2; pt_center.Y = (float)(center.Y + secDot.Y) / 2; directionCurved = DirectonCurved.second; break; case 90: directionCurved = DirectonCurved.second; pt_center.X = (float)(center.X + secDot.X) / 2; pt_center.Y = (float)(center.Y + firstDot.Y) / 2; directionCurved = DirectonCurved.third; break; case 180: directionCurved = DirectonCurved.third; pt_center.X = (float)(center.X + firstDot.X) / 2; pt_center.Y = (float)(center.Y + secDot.Y) / 2; directionCurved = DirectonCurved.four; break; case 270: directionCurved = DirectonCurved.four; pt_center.X = (float)(center.X + secDot.X) / 2; pt_center.Y = (float)(center.Y + firstDot.Y) / 2; directionCurved = DirectonCurved.first; break; } startAngle += rotateAngle; matrix.RotateAt(rotateAngle, pt_center); matrix.TransformPoints(pts); center = pts[0]; oldCenter = pts[0]; firstDot = pts[1]; oldFirstDot = pts[1]; secDot = pts[2]; oldSecDot = pts[2]; }
public CurvedRailEle CreateEle(Point centerDot, Size size, Int16 multiFactor, string text) { DrawMultiFactor = multiFactor; objectCurvedOp.DrawMultiFactor = DrawMultiFactor; Point pt = centerDot; pt.Offset(centerDot.X / DrawMultiFactor - centerDot.X, centerDot.Y / DrawMultiFactor - centerDot.Y); center = pt; oldCenter = pt; directionCurved = DirectonCurved.first; Point pt_first = new Point(center.X + radiu, center.Y); Point pt_sec = new Point(center.X, center.Y + radiu); firstDot = pt_first; oldFirstDot = pt_first; secDot = pt_sec; oldSecDot = pt_sec; this.railText = text; return(this); }
public override void RotateCounterClw() { base.RotateCounterClw(); RotateAngle = -90; Matrix matrix = new Matrix(); PointF pt_center = new PointF(); Point[] pts = new Point[4]; pts[0] = center; pts[1] = firstDot; pts[2] = secDot; startAngle = (startAngle + 360) % 360; switch (startAngle) { case 0: directionCurved = DirectonCurved.first; pt_center.X = (float)(center.X + firstDot.X) / 2; pt_center.Y = (float)(center.Y + secDot.Y) / 2; directionCurved = DirectonCurved.four; break; case 90: directionCurved = DirectonCurved.second; pt_center.X = (float)(center.X + secDot.X) / 2; pt_center.Y = (float)(center.Y + firstDot.Y) / 2; directionCurved = DirectonCurved.first; break; case 180: directionCurved = DirectonCurved.third; pt_center.X = (float)(center.X + firstDot.X) / 2; pt_center.Y = (float)(center.Y + secDot.Y) / 2; directionCurved = DirectonCurved.second; break; case 270: directionCurved = DirectonCurved.four; pt_center.X = (float)(center.X + secDot.X) / 2; pt_center.Y = (float)(center.Y + firstDot.Y) / 2; directionCurved = DirectonCurved.third; break; } startAngle += rotateAngle; matrix.RotateAt(rotateAngle, pt_center); matrix.TransformPoints(pts); center = pts[0]; oldCenter = pts[0]; firstDot = pts[1]; oldFirstDot = pts[1]; secDot = pts[2]; oldSecDot = pts[2]; }
public CurvedRailEle CreateEle(Point centerDot, Size size, Int16 multiFactor, string text) { DrawMultiFactor = multiFactor; objectCurvedOp.DrawMultiFactor = DrawMultiFactor; Point pt = centerDot; pt.Offset(centerDot.X / DrawMultiFactor - centerDot.X, centerDot.Y / DrawMultiFactor - centerDot.Y); center = pt; oldCenter = pt; directionCurved = DirectonCurved.first; Point pt_first = new Point(center.X + radiu, center.Y); Point pt_sec = new Point(center.X, center.Y + radiu); firstDot = pt_first; oldFirstDot = pt_first; secDot = pt_sec; oldSecDot = pt_sec; this.railText = text; return this; }