Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Поворот объектов с помощью матрицы


Автор: JaBBa 20.12.2010, 12:16
Подскажите пожалуйста как правильно повернуть объект Rect с помощью матрицы(Matrix), а потом отрисовать его на созданом мной контроле. Проблема в том что левая верхняя точка объекта поворачивается в нужные координаты, но сам прямоугольник растягивается. 

Код

            Point pt = new Point((SystemParameters.WorkArea.Height - SystemParameters.WindowCaptionHeight - clockRadius) / 2,
                (SystemParameters.WorkArea.Width - SystemParameters.WindowCaptionHeight - clockRadius) / 2);

            Matrix matrixSecondsArrow = new Matrix();
               
            Rect secondsArrow = new Rect();
            secondsArrow.Height = 75;
            secondsArrow.Width = 3;
            matrixSecondsArrow.Translate(pt.X, pt.Y);
            matrixSecondsArrow.RotateAt((DateTime.Now.Hour * 30 + DateTime.Now.Minute / 2) - 180, pt.X, pt.Y);
            secondsArrow.Transform(matrixSecondsArrow);

            dc.DrawRectangle(brushMarks, penArrows, secondsArrow);


Я хотел добится поворота прямоугольника вокруг центра рабочей области на угол, который равен текущему времени. Возможно я как то не правильно работаю с матрицей?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)