Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2012, 16:06
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 1  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Расчёт траектории выпадания предмета

Всем доброго дня!

Подскажите уравнение, для выпадания предмета из точки A в точку B в двухмерной системе координат, где ось X направлена вправо, а ось Y направлена вниз. Что-то типа такого:



Красная точка, это от куда выпадает предмет, а зелёные - это куда они выпадают (в данной ситуации показаны траектории выпадения пяти предметов). В общем нужна формула, по которой точку начала выпадания и точку куда должен будет упасть предмет, ну и например параметр скорости. По параболе или ещё по чему там оно будет выпадать - всё равно.

Есть идеи?

Старый 02.04.2012, 16:20
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 2  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
A*exp(-x^2/a^2) - Гауссово распределение.

Добавлено через 1 минуту
Вернее, правильно так.

Старый 02.04.2012, 16:23
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 3  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
Silicium
И как она мне поможет?

У меня есть точка A (начало) и точка B (конец). Далее мне нужно чтобы предмет из точки A упал в точку B (открыли сундук и из него выпала вещь) за определённое время. Как сделать такое?

Старый 02.04.2012, 16:26
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Цитата:
Сообщение от s3dworld Посмотреть сообщение
нужна формула, по которой точку начала выпадания и точку куда должен будет упасть предмет
...
Есть идеи?
Выдыхай!

UPD: а, если есть начало и конец:
Код AS3:
p.x = A.x * (1 - alpha) + B.x * alpha;
p.y = A.y * (1 - alpha) + B.y * alpha + alpha * (1 - alpha) * 4 * arcH;
где alpha = (время с начала анимации) / (время за которое оно перелетит из А в В). arcH - высота параболы (если у А и В одинаковый у).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 02.04.2012 в 16:36.
Старый 02.04.2012, 16:31
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Берешь точки A и B, по середине по оси x между ними выбираешь еще одну и поднимаешь вверх на нужное расстояние. На основании этих 3х точек строишь кривую Безье, которая и будет искомой траекторией.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 02.04.2012, 17:07
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 6  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Судя по картинке, игра с видом аля изометрия. Не понятно 3d она или 2d? Если 3d то вам правильно советуют, самое простое уравнение параболы, и бизье тоже подойдет, Гауссово распределение обрезать надо. А если 2d то там посложнее будет. А если вы знаете формулу и не знаете как применить, то это надо мат часть учить, as3 тут не при чем.

Старый 02.04.2012, 17:57
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 7  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Парабола в массы.
А вообще я твинером решил этот вопрос))
А сами точки просчитал на бамажке в кол-ве 6-и вариантов, и собственно всё. Считал параболой.
Потом просто из массива пар точек беру рандомную пару и по ним твинер пускаю.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 02.04.2012, 18:00
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 8  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
Ребят, сделал следующим образом. Определяем:

Код AS3:
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;
Как Вы видите, тут три точки на кривой и коэффициенты A, B и C. Далее рассчитываю их:

Код AS3:
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;
И вот я двигаю предмет по траектории:

Код AS3:
pos.x=sdropBeginPoint.x+_params.speed.x*(_params.time/10);
pos.y=rateA*Math.pow(pos.x,2)+rateB*pos.x+rateC;
Что же у меня получается. Когда я задаю точку старта левее точки конца, то всё происходит верно. Но стоит мне задать точку конца левее точки старта, то у меня предмет начинает тупо лететь вниз. Как так?

Старый 02.04.2012, 20:15
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 9  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Прошу прощения, я вопрос не понял.

Старый 02.04.2012, 21:22
Vishapakahr вне форума Посмотреть профиль Отправить личное сообщение для Vishapakahr Найти все сообщения от Vishapakahr
  № 10  
Ответить с цитированием
Vishapakahr

Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
попробуйте box2d или nape ...
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !!

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.