|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
29.12.2008, 23:49 | #1 |
Регистрация: 29.12.2008
Сообщений: 6
|
2D шарик по лестнице
Здравствуйте коллеги по любимому делу-программированию, столкнулся я с задачкой больше физической нежели программистской.
Задача: смоделировать движение шарика(прыжки) по лестнице(10ступенек к примеру) в 2D, задается вес шарика М, начальная горизонтальная скорость V, высота над первой ступенькой H, длина=высота ступеньки L -вводятся пользователем. Сопротивл воздуха не учитывать, ударение неупругое. Пишу на 6-ом билдере С++ программа состоит фактически из 2х-3х функций Down(полет шарика вниз) Up(полет вверх) и cick(удар о ступеньку) лесенка на экране статична(ее размер не зависит от L, я маштабирую результаты просчетов и все) Как я понял загвоздка у меня не в программировании а в физике, вот какие формулы мне дали физики, понимающие в программировании как я в физике... проекции положения тела на оси x=x0+v0*t*cos(a0) в моем случае скорость v0 только по горизонту а0=0 y=y0+v0*t*sin(a0)-g*t*t/2 при а0=0, v0*t*sin(a0)=0 стремно составляющие скорости vx=v0*cos(a0) vy=v0*sin(a0)-g*t результирующая скорость(ваще не знаю кто такая) v=sqrt(vx*vx+vy*vy)=sqrt(2*v0*v0-2*v0*g*t*sin(a0)+g*g*t*t) исключая время(что мне как раз и не надо я так думаю) получим ур-е y=y0+(x-x0)*tg(a0)-g*(x-x0)*(x-x0)/2*v0*v0*cos(a0)*cos(a0) помогите составить алгоритм используя формулы если какие подходят хотя бы образно програмно я сам наваяю вот мои примерные функции(не густо сразу скажу) в билдере все так //все переменные глобальные чтоб не заморачиваться Код:
Код:
Вобщем кто чем может подскажите, если чего не понятно написал, объясню, заранее спасибо Модератор: тег CODE Последний раз редактировалось MaTBeu; 30.12.2008 в 01:25. |
30.12.2008, 07:38 | #2 |
Регистрация: 29.12.2008
Сообщений: 6
|
я придумал некоторый алгоритм но из-за отсутствия уравнений координат не могу его проверить
M ---> V . . . H . . . -------* L | L | |______ Чтобы найти точку удара о лестницу произвожу проверку до каждой ступеньки, очевидно что как минимум при 0 или маленькой скорости шарик долетит до первой,те высота H, после прорисовки траектории, кргда шарик упал с высоты H (точка "*" на рисунке), проверяю,если х (координата)>L то полетел вниз еще на L и снова анологичная проверка х с 2*L и тд., если х<L то break из функции Dawn() и переход к Up() (удар и отскок) Может при падении не брать время а тупо х++ координату, а "y" пересчитывать относительно "х" по последнему уравнению? Вот думаю а если скорость задаш огроную, тогда шарик вобще горизонтально полетит тогда х++ не годится... |
30.12.2008, 07:44 | #3 |
Регистрация: 29.12.2008
Сообщений: 6
|
блин пробелы удаляются
M ---> V \\. \\\\. \\\\\\. H \\\\\. \\\\\\\\. \\\\\\\\. -------*-- |||||||||| LxL ||||||| |||||||||| \\\\\\\\\\\\--------- |
30.12.2008, 15:31 | #4 |
Пользователь
Регистрация: 30.12.2008
Сообщений: 78
|
я не силён в прорисовке, размести всю логику я подумаю может что и подскажу
Моя работа - Создание сайтов
|
30.12.2008, 18:10 | #5 |
Регистрация: 29.12.2008
Сообщений: 6
|
задержка с клоком через вайл фуфло, в билдере не катит, точнее прорисовка происходит только последней итерации вайла, а остальное смазывается как фотошоп!!! я через таймер решил делать, посоветовали умные люди
Надо завтра с утра уже сдавать прогу, так что сдам чего есть |
30.12.2008, 18:11 | #6 |
Регистрация: 29.12.2008
Сообщений: 6
|
как говорится проси других делать а сам не плошай
|
30.12.2008, 19:27 | #7 |
Пользователь
Регистрация: 31.05.2008
Сообщений: 34
|
Вот в Делфи готовая прога.
sharik.rar Сейчас напишу код для расчёта координат в C++ (только без прорисовки, т.к. C++ только начал изучать) Последний раз редактировалось Mikola-TEAM; 30.12.2008 в 20:19. |
30.12.2008, 19:54 | #8 |
Пользователь
Регистрация: 31.05.2008
Сообщений: 34
|
Код:
Последний раз редактировалось Mikola-TEAM; 30.12.2008 в 20:38. |
31.12.2008, 14:13 | #9 |
Регистрация: 29.12.2008
Сообщений: 6
|
Братан ваще выручил, я тут такую ересь заворачиваю уже вторые сутки по500строк,твой код работает,щас координаты подгоню только
Агромное челавеческое спасибо!!! |
02.01.2009, 16:21 | #10 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Я думаю вопрос снят. Тема закрыта.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ШАрик двигается по петли | jomix | Помощь студентам | 3 | 01.06.2007 12:46 |