Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Движение по параболе. Нахождение следующей точки движения. 
:(
    Опции темы
Nendis
  Дата 31.5.2011, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.11.2010

Репутация: нет
Всего: нет



Доброго времени суток. Подскажите пожалуйста следующий момент. 
Есть точка на форме с координатами: х,у.
Есть расстояние которое она преодолеет за один цикл таймера.
Есть р - коэффициент параболы. (для формулы x = 2*p*x^2 )
Помогите пожалуйста найти координаты следующей точки (следующего цикла таймера) из расчета что наша точка - вершина параболы. 

Это сообщение отредактировал(а) Nendis - 31.5.2011, 00:21
PM MAIL   Вверх
volatile
Дата 31.5.2011, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 16
Всего: 85



Nendis, Вам нужно найти длину(периметр) параболы.
Это нужно найти либо в справочнике, либо посчитать самому с помощью диф.ур'ов.
Мне лень, честно скажу. Тем более диф.урами давненько не занимался..
Советую в алгоритмы обратиться. Там ребята быстро найдут решение.






PM MAIL   Вверх
Alexeis
Дата 31.5.2011, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 4
Всего: 459



Исходя из условия 
>Есть расстояние которое она преодолеет за один цикл таймера.
Делаем вывод, что за любой интервал времени dt точка перемещается на некоторое расстояние L
Также функция времени ступенчатая t = dt * n, где n номер тика.
Определяем начальные условия что в момент времени t0=0, x=0, тогда y=0.
Кроме того задано (y(t)-y(t-dt))^2 + (x(t)-x(t-dt))^2 = L^2 и y = 2*p*x^2

----------------------------------------------------------------------------------------------
Требуется найти функции y(t), x(t)
----------------------------------------------------------------------------------------------
Решение:
для t = 0,  запишем (y(t)-y(t-dt))^2 + (x(t)-x(t-dt))^2 = L^2 в виде

y(dt)^2 + x(dt)^2 = L^2

Из y = 2*p*x^2 получаем x(dt)^2 = y(dt) / 2 * p

Получаем уравнение 
L^2 / (y(dt)^2) = y(dt) / 2 * p

Откуда y(dt) = (2p * L^2)^(1/3), это y координата второй точки. Однако нам известно, что за интервалы времени равные dt * n точка проходит расстояние L * n, значит нашу формулу можно преобразовать до

y(dt * n) = (2p * (L * n)^2)^(1/3)
x(dt * n) = (y(dt * n) / (2 * p))^(1/2)

Если в программе храниться t, а не n, тогда форумулы будут

y = (2p * (L * t / dt)^2)^(1/3)
x = (y / (2 * p))^(1/2)




Это сообщение отредактировал(а) Alexeis - 31.5.2011, 10:26


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.