Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Повернуть прямоуголник на заданный угол |
Автор: Podarochek 9.7.2008, 12:08 |
Подскажите пож. как можно нарисовать прямоуголник или еллипс под углом. стандартные функции рисут их же горизонтально... |
Автор: Lazin 9.7.2008, 12:29 |
в общем случае - прямыми линиями/кривыми безье |
Автор: Podarochek 9.7.2008, 13:10 |
слышал о том что можно повернуть контекст при рисовании... |
Автор: Draeden 9.7.2008, 20:43 |
MSDN: ExtCreateRegion |
Автор: GremlinProg 10.7.2008, 16:40 |
ExtCreateRegion - зачем? SetWorldTransform() - для поворота, указываем матрицу преобразования, как обычно | 1 | 0 | 0 | | 0 | 1 | 0 | | -x | -y | 1 | X | cos(a) | sin(a) | 0 | | -sin(a ) |cos(a)| 0 | | 0 | 0 | 1 | X | 1 | 0 | 0 | | 0 | 1 | 0 | | +x | +y | 1 | x и y - координаты точки вокруг которой происходит поворот а - угол в радианах последний столбец в матрицах исключен за ненадобностью, он учитывается автоматически, для масштабирования есть другие инструменты, или простая матрица | sx | 0 | 0 | | 0 | sy | 0 | | 0 | 0 | 1 | где sx и sy - коэффициенты масштабирования ModifyWorldTransform() - для последовательных трансформаций CombineTransform() - для перемножения нескольких матриц |