![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2011
Сообщений: 3
|
Я делаю игру для курсовой, пожалуйста опишите в общих чертах как лучше и проще сделать, чтобы один объект передвигался по контуру другого (не по рамке). Предложения типа: "используй готовый движок не предлогать".
|
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Для начала выяснить "что есть контур объекта"
|
|
|||||
|
Регистрация: Nov 2011
Сообщений: 3
|
контур объекта есть контур рисунка на картинке в png
|
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Для программы это не контур, а такой же набор пикселей как и все остальные на этой картинке, включая и альфа канал.
Задача далеко не из простых, чтобы что-то посоветовать. Проще написать программульку для расстановки точек вручную, расставить их, и пусть объект движется от точки к точке |
|
|||||
|
Список точек получить - это может быть ресурсо-затратно, но не так уж и сложно.
Можно пойти таким путем: получаем центр изображения. От него проводим 360 лучей во все стороны. Идем по каждому лучу с шагом в 1 пиксель и смотрим - прозрачный ли пиксель на картинке. Как только встречаем прозрачный пиксель - значит предыдущий это искомая точка. Можно упростить картинку (уменьшить в 2 раза) и произвести вычисления с уменьшенной копией.
__________________
...вселенская грусть |
|
|||||
|
Можно попробовать векторизовать изображение и выделить контур.
|
|
|||||
|
Чтобы центр получить тоже поиграться придется. Для определения центра нам понадобится контур
![]() Имхо проще от краев двигаться к центру, проверяя альфа-канал. Прозрачная точка в которой с одной стороны будет такая же прозрачная точка, а с другой - цветная - одна из наших точек. Фиксируем эти все точки в массив, тут придется поиграться чтоб порядок их не перепутать. Далее по этим точкам двигаем, либо же кривую проводим. Как вариант двигаясь от края к центру находим первую такую точку, а далее движемся уже от нее. Там придется либо семь, либо пять пикселей проверять вокруг текущего. Так и двигаемся пока не наткнемся на тот с которого начинали. Таким образом и порядок сохранится.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|