Example #1
0
        PointF[] CalcBezier(int LeftsOffset, int RightsOffset, SideY SideY)
        {
            PointF[] Points = new PointF[4];

            Points[0] = new PointF(0, LeftsOffset / 2f);
            Points[1] = CalcControlPoint(LeftsOffset, SideX.left);
            Points[2] = CalcControlPoint(RightsOffset, SideX.right);
            Points[3] = new PointF(1, RightsOffset / 2f);

            if (SideY == SideY.bottom)
            {
                for (int i = 0; i < Points.Length; i++) { Points[i].Y *= -1; Points[i].Y -= 1; }
            }

            return Points;
        }
Example #2
0
 public void ResizeY(SideY s = SideY.Up)
 {
     apprSideY = s;
     switch (s)
     {
         case SideY.Down:
             area.AxisY.Maximum = area.AxisY.Minimum + widthY;
             break;
         case SideY.Center:
             double center = (area.AxisY.Minimum + area.AxisY.Maximum) / 2;
             area.AxisY.Minimum = center - widthY / 2;
             area.AxisY.Maximum = center + widthY / 2;
             break;
         case SideY.Up:
             area.AxisY.Minimum = area.AxisY.Maximum - widthY;
             break;
     }
     centerY = area.AxisY.Minimum / 2 + area.AxisY.Maximum / 2;
 }
Example #3
0
 int Offset(Point Base, SideX SideX, SideY SideY)
 {
     int OffsetX = (SideX == SideX.left) ? 1 : -1; return SquareOffset(Base, OffsetX, SideY);
 }
Example #4
0
 int SquareOffset(Point Base, int OffsetX, SideY SideY)
 {
     if (IsTranslate(Base, OffsetX, (int)SideY * 1)) { if (IsTranslate(Base, OffsetX, (int)SideY * 2)) return 2; else return 1; }
     else if (IsTranslate(Base, OffsetX, 0)) return 0;
     else if (IsTranslate(Base, OffsetX, (int)SideY * -1)) return -1;
     else if (IsTranslate(Base, 0, (int)SideY * - 1)) return -2;
     else return 0;
 }
Example #5
0
        /// <summary>
        /// (перемещает этот объект в выбранном направлении)
        /// </summary>
        /// <param name="speed">(скорость перемещения)</param>
        /// <param name="typeX">(<see cref="SideX"/> направление по оси X)</param>
        /// <param name="typeY">(<see cref="SideY"/> направление по оси X)</param>
        public static void MoveAside(this ObjectSingle objectToMove, float speed, SideX typeX = SideX.middle, SideY typeY = SideY.middle)
        {
            int kX = 0;
            int kY = 0;

            switch (typeX)
            {
            case SideX.left:
                kX = -1; break;

            case SideX.middle:
                kX = 0; break;

            case SideX.right:
                kX = 1; break;
            }
            switch (typeY)
            {
            case SideY.up:
                kY = -1; break;

            case SideY.middle:
                kY = 0; break;

            case SideY.down:
                kY = 1; break;
            }
            Move(objectToMove, speed, kX.GridToX(), kY.GridToY());
        }