Example #1
0
        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];
        }
Example #2
0
        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);
        }
Example #3
0
 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];
 }
Example #4
0
 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;
 }