![]() |
|
Модераторы: bsa |
![]()
|
|
| Nendis |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 26.11.2010 Репутация: нет Всего: нет |
Доброго времени суток. Подскажите пожалуйста следующий момент.
Есть точка на форме с координатами: х,у. Есть расстояние которое она преодолеет за один цикл таймера. Есть р - коэффициент параболы. (для формулы x = 2*p*x^2 ) Помогите пожалуйста найти координаты следующей точки (следующего цикла таймера) из расчета что наша точка - вершина параболы. Это сообщение отредактировал(а) Nendis - 31.5.2011, 00:21 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Nendis, Вам нужно найти длину(периметр) параболы.
Это нужно найти либо в справочнике, либо посчитать самому с помощью диф.ур'ов. Мне лень, честно скажу. Тем более диф.урами давненько не занимался.. Советую в алгоритмы обратиться. Там ребята быстро найдут решение. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 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 вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |