OriginalGriff
Видеть MSDN: графика.Метод RotateTransform[^]
В принципе, чтобы повернуть прямоугольник на 20 градусов по часовой стрелке в вашем событии рисования:
e.Graphics.RotateTransform(20.0F);
e.Graphics.DrawRectangle(Pens.Red, new Rectangle(5, 5, 30, 40));
-тнкс ...это сработало...но если я хочу выполнить это в событии Timer_tick .за каждую секунду произошло вращение .. возможно ли это..и как, пожалуйста ?? Но все равно спасибо "
Во-первых, не рисуйте в своем событии таймера. Вместо этого обработайте событие Paint для панели или формы и нарисуйте там. Затем в событии таймера измените угол, под которым вы хотите нарисовать верхнюю часть (в переменной уровня класса), и используйте метод Invalidate на панели или форме.
private float rotateAngle = 0.0F;
private void timer1_Tick(object sender, EventArgs e)
{
rotateAngle += 5.0F; // Step the draw angle on
if (rotateAngle > 360.0F)
{
rotateAngle = 0.0F;
}
MyPanelForDrawingRectanglesOn.Invalidate();
}
Я бы предпочел использовать панель, так как рисунок тогда не будет проходить под какими-либо другими элементами управления, но это зависит от вас...
chernobel
это сработало очень хорошо, но с проблемой, что прямоугольник вращается вокруг верхнего левого угла..
я пробую метод RotatAt()...вращаться вокруг центра прямоугольника.. но это не сработало...
так как же я могу ее решить? пожалуйста.