|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.09.2014, 11:33 | #1 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 58
|
Движение обьекта по траектории параболы
Суть: ( это не энгри бердс )
___________________________________ ____ Есть 2 поля поля А и Б , пользователь где его душе угодно ставит на поле 2 имеджа , (заменяющие 2 цилиндра ). Необходимо реализовать , чтобы после размещения 2 имеджей , между ними нарисовалась парабола и ровно по линии параболы от 1 имеджа к другому двигался шарик . ___________________________________ ____ Чего я не могу понять ? Как достать координаты имеджа 1 и 2 , после того как их расставил пользователь и как координаты использовать при построении параболы ? |
09.09.2014, 12:17 | #2 |
Форумчанин
Регистрация: 21.01.2012
Сообщений: 240
|
Проблема в том, что через две точки можно провести много парабол) В том же энгрибёрдз можно птицу пустить вперед по прямой почти, а можно дугу сделать резко вверх и потом резко вниз, и попасть в ту же точку в итоге.
По сему недостаточно данных. Надо бы иметь дополнительно, например, стартовое направление вылета хотя бы (вектор). И тогда, учитывая, что вектор этот есть касательная к параболе в точке вылета, можно записать уравнение параболы, уравнение производной от него в точке вылета (что и есть касательная) и примотать туда этот вектор. parab.png А вообще, если взять квадратичную параболу, то можно вроде бы решить задачку: Уравнение квадратичной параболы "ногами вниз": y = -1 * x^2 Если даем ей двигаться по x и y, то получаем y = -1 * (x+a)^2 + b Пусть есть координаты первой точки x1,y1 и второй точки x2,y2. Составляем два уравнения: y1 = -1 * (x1+a)^2 + b y2 = -1 * (x2+a)^2 + b Два уравнения, две неизвестных (a и b). Решаем, получаем результаты a и b (там похоже будет квадратное уравнение с вариантами корней, выбираем любые из получившихся, все равно парабола проткнет обе заданные точки), рисуем квадратичную параболу по формуле y = -1 * (x+a)^2 + b. И шарик двигаем по этой же формуле, меняя x шарика от x1 до x2 (при этом расчитывая y шарика по этой же формуле). Последний раз редактировалось blackstrip; 09.09.2014 в 12:56. |
09.09.2014, 12:18 | #3 | |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Цитата:
Ну ладно, допустим есть их координаты. Но этого недостаточно. Это для прямой достаточно 2-х точек. А для параболы нужно 3. Через 2 точки можно провести бесконечное множество парабол. Надо еще какие-то требования к параболе. |
|
09.09.2014, 13:49 | #4 | ||
Пользователь
Регистрация: 14.01.2013
Сообщений: 58
|
Цитата:
Скажите куда мне вставлять координаты имеджа 1 и имеджа 2 ( в какую , с учетом , того , что высота будет максимум отличаться от 1 до 5 , формулу ) ? ------------------ Предположим , что высота h:=random(5)+1; Цитата:
На деле это должно соединять обьект А и Б Снимок.JPG Последний раз редактировалось nelo_001; 09.09.2014 в 14:45. |
||
09.09.2014, 14:54 | #5 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Так я еще раз объясняю - из точки 1 в точку 2 можно кинуть множеством способов. Можно почти прямо, как прямой выстрел из пушки, можно по навесной траектории, как из миномета.
Надо еще 3-ю точку задать. Расчет коэффициенов по3-м точкам - вот тут - http://econom.misis.ru/s/Hel/Matem/Para_3t.htm PS Либо, кроме координат точек 1 и 2, должна быть задана скорость. Тогда решать чисто по физике - движение тела, брошенного под углом к горизонту Последний раз редактировалось type_Oleg; 09.09.2014 в 15:05. |
09.09.2014, 15:05 | #6 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 58
|
3-я точка это высота ?
Последний раз редактировалось nelo_001; 09.09.2014 в 15:11. |
09.09.2014, 15:12 | #7 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
|
09.09.2014, 15:33 | #8 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 58
|
Хмм... предположим , что у нас есть 3 точка и её координаты х3,у3.
Снимок.JPG и теперь когда известны х1,у1,х2,у2,х3,у3 это все дело подставлять в уравнение ? 2222.JPG |
09.09.2014, 15:46 | #9 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Ну да. X=Left , Y=Top
Получится: a= 0.002812913 b= -1.85542328 c= 487.0824074 Вычисления лучше - в виде процедуры оформить. Кстати, если задавать эту среднюю точку случайно, она скорее всего не будет вершиной параболы. В данном случае вершина: X= 329.8045555 Y= 181.1188823 Вообще, координаты вершины X = -b/(2a); Y= подставить данный X ... Последний раз редактировалось type_Oleg; 09.09.2014 в 15:53. |
09.09.2014, 15:56 | #10 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 58
|
О да ! это я как раз о чем я думал ! Но прошу извинить нужно лететь в Универ Вечером буду творить .
И вот , что я забабахал Снимок (1).JPG |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение объектов по траектории | Vladlena | Общие вопросы C/C++ | 0 | 19.05.2013 18:38 |
Задать движение шара по траектории параболы в Delphi | reznor264 | Помощь студентам | 6 | 02.11.2010 19:36 |
Движение курсора по траектории | DarkHacker | Помощь студентам | 0 | 19.03.2010 18:05 |
Движение фигуры по траектории | Dgohn | Общие вопросы Delphi | 3 | 08.01.2009 09:36 |