Войти
ПрограммированиеФорум2D графика и изометрия

Карусель в 2D изометрии

#0
9:13, 14 мар. 2013

Привет! Мне необходимо реализовать карусель в 2D - движение объектов друг за другом по кругу.
Вот схематичный рисунок:
Изображение
Идея в том что когда мы смотрим на эту карусель сбоку а не сверху иллюзия движения по кругу создается путем изменения направления движения, скорости движения и масштаба объектов.
Понятно что эти величины считаются относительно позиции объекта на экране. Вопрос в том как именно посчитать какой масштаб и скорость будет у объекта в данной позиции.
То есть нужно постепенное уменьшение-увелечиние масштаба объекта а так же его скорость - быстрая когда объект находится в центре экрана и стремящаяся к нулю когда объект находится на краю круга (карусели) относительно зрителя.

Язык кода и платформа значения не имеет (но за примеры тоже буду благодарен). Мне нужна помощь разобраться как это реализуется с математической точки зрения.

Отличный пример - меню игры Contre Jour:
Изображение

В динамике это меню можно посмотреть с 0:15 секунды:


http://www.youtube.com/watch?v=ptdTdJarWLw


#1
9:51, 14 мар. 2013

это делается очень просто.

#2
10:51, 14 мар. 2013

Спасибо за ответ, но почему-то описание того как это просто делается не отображается в посте. Вы не могли бы отправить его снова?

#3
11:57, 14 мар. 2013

эм... элипс
rx,ry - полуоси(расстояние от нижней/левой границы до центра
x0,y0 - центр
a - угол
координаты
х = rx*cos(a) + x0
y = ry*sin(a) + y0
масштаб выводишь из y(трушная 3д проекция тут не нужна, можно обойтись линейной зависимостью), сначала рисуешь дальние обьекты.
правильная скорость образуется сама при привязке положения к углу.

#4
11:57, 14 мар. 2013

Синусом делается, думаю.

Denadan, опередил :)

#5
19:52, 14 мар. 2013

Считй в 3Д, рисуй в 2Д, в чем сожность?

#6
10:48, 15 мар. 2013
rx,ry - полуоси(расстояние от нижней/левой границы до центра
x0,y0 - центр
a - угол
координаты
х = rx*cos(a) + x0
y = ry*sin(a) + y0
масштаб выводишь из y(трушная 3д проекция тут не нужна, можно обойтись линейной зависимостью), сначала рисуешь дальние обьекты.
правильная скорость образуется сама при привязке положения к углу.

Спасибо Denadan! Именно это мне и нужно было и у меня все получилось.

#7
21:50, 15 мар. 2013

ну вот. яже говорил, что всё просто делается

ПрограммированиеФорум2D графика и изометрия

Тема в архиве.