Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В какую сторону вращает метод... GraphicsPath.RotateAt(...) 
:(
    Опции темы
CyraxZ
Дата 24.5.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 10.12.2006

Репутация: нет
Всего: нет



В хэлпе написано, что метод RotateAt объекта GraphicsPath вращает свои path'ы по ч.с. Так и было у меня. Тока вот появились глюки в проге, стал разбираться... обнаружилось, что в одном месте метод вращает против ч.с.

Мои действия в программе:
1. Создаю объект GraphicsPath
2. Пихаю туда линию (AddLine)
3. Вращаю с помощью матрицы (Matrix.RotateAt(...)) относительно середины линии
4. Извлекаю новые координаты точек из массива Graphicspath.PathPoints

Первым параметром Matrix.RotateAt указываю, скажем, 15 градусов (именно положительное малое число). Вращает против ч.с. В режиме отладки всё проверил: точка вращения - центр линии, вращаю на +15 градусов (не -15). Меняю знак угла (на -15) - вращает в другую сторону (по ч.с.). Пока поставил "-" перед углом - т.н. временная "заплатка"...

__________
В другом месте программы (где RotateAt вращает по ч.с., как и положено) вращаю эллипс, скажем, на n градусов по ч.с.:
1. Вращаю центр эллипса относительно точки вращения на n градусов. Поскольку в GraphicsPath нельзя запихнуть точку (тока линию), то вращаю отрезок, соединяющий точку (0,0) и центр эллипса.
2. Инкрементирую угол наклона эллипса на n градусов

Здесь с направлением вращения всё нормально - получаю ожидаемый результат.

__________
з.ы. Вообще, объект GraphicsPath порой ведёт себя странно. Заметил следующую фичю/глюк:
Запихиваю в GraphicsPath две прямые. Первая прямая: (0,0) (0,0), вторая: (0,0) (5,5). Т.е. первая прямая имеет нулевую длину. После запихивания создаётся не 4 точки, а 3 (!): (0,0), (0,0) и (5,5)...
Пока объяснить это не могу...
PM MAIL   Вверх
CyraxZ
Дата 31.5.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 10.12.2006

Репутация: нет
Всего: нет



dsi
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0681 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.