![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 170
|
Всем доброго дня!
Подскажите уравнение, для выпадания предмета из точки A в точку B в двухмерной системе координат, где ось X направлена вправо, а ось Y направлена вниз. Что-то типа такого: ![]() Красная точка, это от куда выпадает предмет, а зелёные - это куда они выпадают (в данной ситуации показаны траектории выпадения пяти предметов). В общем нужна формула, по которой точку начала выпадания и точку куда должен будет упасть предмет, ну и например параметр скорости. По параболе или ещё по чему там оно будет выпадать - всё равно. Есть идеи? |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 170
|
Silicium
И как она мне поможет? У меня есть точка A (начало) и точка B (конец). Далее мне нужно чтобы предмет из точки A упал в точку B (открыли сундук и из него выпала вещь) за определённое время. Как сделать такое? |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Цитата:
UPD: а, если есть начало и конец: где alpha = (время с начала анимации) / (время за которое оно перелетит из А в В). arcH - высота параболы (если у А и В одинаковый у).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 02.04.2012 в 16:36. |
|
|||||
|
Берешь точки A и B, по середине по оси x между ними выбираешь еще одну и поднимаешь вверх на нужное расстояние. На основании этих 3х точек строишь кривую Безье, которая и будет искомой траекторией.
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Судя по картинке, игра с видом аля изометрия. Не понятно 3d она или 2d? Если 3d то вам правильно советуют, самое простое уравнение параболы, и бизье тоже подойдет, Гауссово распределение обрезать надо. А если 2d то там посложнее будет. А если вы знаете формулу и не знаете как применить, то это надо мат часть учить, as3 тут не при чем.
|
|
|||||
|
Парабола в массы.
А вообще я твинером решил этот вопрос)) А сами точки просчитал на бамажке в кол-ве 6-и вариантов, и собственно всё. Считал параболой. Потом просто из массива пар точек беру рандомную пару и по ним твинер пускаю.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 170
|
Ребят, сделал следующим образом. Определяем:
private var sdropBeginPoint:Vector2=null; private var sdropMiddlePoint:Vector2=null; private var sdropEndPoint:Vector2=null; private var rateA:Number=0; private var rateB:Number=0; private var rateC:Number=0; sdropBeginPoint.x=rect.x+rect.width/2-width/2; sdropBeginPoint.y=rect.y+rect.height/2-height/2; sdropEndPoint.x=_targetX; sdropEndPoint.y=_targetY; sdropMiddlePoint.x=sdropBeginPoint.x+(sdropEndPoint.x-sdropBeginPoint.x)/2; sdropMiddlePoint.y=sdropBeginPoint.y-50; var x1:Number=sdropBeginPoint.x; var y1:Number=sdropBeginPoint.y; var x2:Number=sdropMiddlePoint.x; var y2:Number=sdropMiddlePoint.y; var x3:Number=sdropEndPoint.x; var y3:Number=sdropEndPoint.y; rateA=(y3-(x3*(y2-y1)+x2*y1-x1*y2)/(x2-x1))/(x3*(x3-x1-x2)+x1*x2); rateB=(y2-y1)/(x2-x1)-rateA*(x1+x2); rateC=(x2*y1-x1*y2)/(x2-x1)+rateA*x1*x2; Что же у меня получается. Когда я задаю точку старта левее точки конца, то всё происходит верно. Но стоит мне задать точку конца левее точки старта, то у меня предмет начинает тупо лететь вниз. Как так? |
|
|||||
|
Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
|
Прошу прощения, я вопрос не понял.
|
|
|||||
|
Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
|
попробуйте box2d или nape ...
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !! |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|