![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Quadruple |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 4.11.2004 Репутация: нет Всего: нет |
Привет всем!
Вот у меня такая запарка, низнаю как сделать. Есть прямоугольник (rect) и много линий разбросанных по полю. Rect может перемещаться и вращаться по полю, но при этом он не должен проходить сквозь линии. Надо сделать так, чтобы rect корректно отталкивался от линий, т. е. просто надо его сместить (без всяких поворотов) на расстояние N от линии. Вот собственно на сколько и в какую сторону надо сместить я незнаю. Все дело происходит в 2D. Вот функция по определению пересечения линий:
Функция работает отлично. A,B - точки отрезка 1 С,D - точки отрезка 2 intersect - точка пересечения двух отрезков Использую так: ищю пересечение каждой стороны прямоугольника с линией (хотя возможо это несколько медленовато но работает). Подскажите, как определить куда и насколько надо сдвинуть rect, чтобы он не пересекал текущую линию? Хотябы теоретически. Это сообщение отредактировал(а) alexeis1 - 14.12.2006, 18:00 |
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 13 Всего: 31 |
хм.. а кто знает, ты же пишешь программу. могу предположить что на пиксель
проводишь перпендикуляр от какой-либо точки прямоугольника к прямой и по нему отодвигаешь -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |