da = Math.PI/20d;// кутова швидкість обертання
// СВОЙСТВАdouble MaxAngle {get {return maxAngle;} set {maxAngle = value;}} double MinAngle {get {return minAngle;} set {minAngle = value;}} double Angle
{{return angle;}
{//перетворимо новий кут, якщо він негативний або більше ніж 360 градусовa = value; (value> = 2 * Math.PI) = value - Math.PI * 2; if (value < ; 0) = 2 * Math.PI + value;
// якщо новий кут потрапляє в заданий діапазон (між min і max) (IsAbleToRotate (a))
{= a; ();;
}
// якщо кут знаходиться радом з кордоном заданого діапазонаif (Math. Abs (maxAngle - value)
}
} PointF Pos {get {return pos;}} PointF EndPoint {get {return new PointF (X + (float) Math. Cos (angle) * length, Y + (float) Math. Sin (angle) * length);}} float X {get {return pos.X;} set {pos.X = value;}} float Y {get {return pos.Y;} set {pos.Y = value;} }
// стачіное властивості да зміною dastatic double dAngle {get {return da;} set {if (value> = 0 && value
{= new PointF ((float) x, (float) y); = direction; = (double) ang/180d * Math.PI; length = len; = null; = 0; maxAngle = 2 * Math.PI;
} Rotary (float x, float y, float len, int ang, RotateDir direction, Rotary ch)
{(x, y, len, ang, direction); = ch;. dir = dir; ();
} Rotary (float x, float y, float len, int ang, RotateDir direction)
{(x, y, len, ang, direction);
} Rotary (float len, int ang)
{(0, 0, len, ang, RotateDir. ClockWise);
} UpdateChild ()
{(child! = null)
{. X = X + (float) Math. Cos (angle) * length;. Y = Y + (float) Math. Sin (angle) * length;
}
} void Draw (Graphics g, Color color)
{. DrawLine (new Pen (color, 5), pos, EndPoint); (child! = null). Draw (g, color);. FillEllipse (new SolidBrush (color), EndPoint.X-5f, EndPoint.Y-5f, 10,10);
} IsAbleToRotate (double a)
{lb = minAngle;// нижня граніцаub = maxAngle;// (dir == RotateDir. CounterClockWise)
{= minAngle; = maxAngle;
} (ub> lb) (a> = lb && a <= ub) return true; return false; if ((a> = lb && a = 0 && a
} void SetRange (int min, int max)
{= (double) min/180d * Math.PI; = (double) max/180d * Math.PI;
} void Rota...