![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Задача у меня такая: есть какойто участок дороги и необходимо что б по нему двигались объекты (пусть это будут мячики).
Так вот я не совсем понимаю алгоритм как это сделать. Например саму дорогу я смогу нарисовать просто соединяя точки я получу какуюто область и вот надо что б по ней эти мячики катились. Как это будет происходить? мне каждую секунду надо перерисовывать мячик меняя его координаты и вместе с ним перерисовывать сам участок или можно что б участок оставался статическим а менять на нём только размещение объектов? и как сделать что б онине вылезли за границы? Я никогда такого движения не делал и мне не понятно как это происходит?? |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
Reptor,
1. OpenGL иди DirectX - или ... ? 2. 3D? вообще я думаю если это таки 3Д, то картой высот надо делать... т.е. образно объясняю...сам ланшафт делаем картой высот... смотрить высоту дороги в данной точке.. считаешь дельту с шариком и на соответствующую дельту поднимаешь шарик... чуть конкретнее объясни что тебе надо... Добавлено через 59 секунд карта высот + OpenGL -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, ну мне нужен сам алгоритм как это делать. Пока что можно без карты высот. Я ж могу для начала нарисовать простым полигоном этот участок?? для начала хоть саму процедуру понять как это делать. А потом уже наращивать.
Вот есть шар и есть участок дороги - пошагово как и что зачем надо делать. Мне без практики тяжело это представить.
Я использую OpenGL. |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
ну если у тебя дога без рельефа нужна то можно простым полигоном...
алгоритм что-то такое, если просто что бы понять: 1. находишь координаты шарика. 2. находишь высоту дороги в этом участке. тут вспомни высшую математику.. т.е. у тебя есть прямоугольник и есть уголы его наклона... думаю можно вывести функцию нахождения Z для точки лежашей на данном прямоугольнике, имея её координаты X и Y(т.е. по сути координаты X и Y шарика). 3. Дальше просто шарику устанавливаем Z равное Z дороги + радиус шарика... надеюсь понятно обьснил... спрашивай, если что то непонятно... p.s. извини, на выходных нет интернета не мог раньше ответить -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon,
ну да это понятно. Для начала я могу же просто задать кординату Z дороги а потом такую же шарику (ну + к высоте ещё радиус шарика). Вот мне не понятен момент такой: 1. нарисовал я полигон. 2. Потом нарисовал шарик на краю полигона. 3. А вот тут и вопрос: как происходит перемещение шарика? если я здвигаю шарик по дороге то что происходит? нужен какойто цыкл где всегда перерисовывать полигон и шарик с новой координатой или как? |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
ну если у тебя просто прямая дорога, даже без наклона, то кончено можно а ты вообще до этого с OpenGL работал? -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon,
да вот в том то и дело что на практике не использовал, только так читал поэтому мне тяжело представвить всё это в голове. как это всё будет. Совсем опыта нет. Поэтому прошу помощи что б объяснили как это сделать |
|||
|
||||
| Solomon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 471 Регистрация: 23.1.2006 Где: Украина Киев Репутация: нет Всего: 2 |
Reptor, извини был занят немог ответить
у тебя сцена всеравно раз за секунду перерисовываеться двигать можешь обыкновенным glTranslated(); вот в этом уроке вращение сделано.. аналогично сделай с перемещением.. вот есть арканоид.. тут перемещение шарика реализовано почитай.. я думаю разберешься... подробно описать немогу.. со свободным временем щас не густо Это сообщение отредактировал(а) Solomon - 15.9.2008, 20:13 -------------------- Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром... Соломон 2008 |
|||
|
||||
| Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Solomon, хорошо спасибо на этом. Почитаю
|
|||
|
||||
| Gongex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 1.1.2008 Репутация: -1 Всего: 0 |
рисуешь шарик,и прибавляешь к его координате х=х+0.1....и он задвигался....
Потом если х>10 { x=x-0.1; } ЭТо на ровной поверхности.То же самое с Z..... |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |