| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Canvas & Механика. Построение анимации. |
| Автор: L0GA4 15.12.2009, 17:24 | ||
| Здравствуйте. Возникла проблема построения анимации. В аттаче рисунок того что надо сделать. Задача: нужно сделать анимацию. Балка OA1 растягивается, все остальные балки(A1A2, A2B ) жесткие. Нужно сделать так, чтобы при перемещении ползунка A1 , перемещался и ползунок А2. Так, чтобы длина A1A2 не изменялась. При этом при перемещении ползунка A2 катилась окружность B. (черная точка на окружности показывает что катится) Вот что получилось, но изменяется длина...пните кто-нить, а то мозг не работает... как рисовать окружность понятно - координата по х будет изменяться на длину дуги. хелп!
|
| Автор: RockClimber 15.12.2009, 17:30 |
| Вставил твой код на форму. Компилятор выдал сообщение, что не знает, что за переменные: L, H, x1, x2, xc1, xc2, yc1, yc2 - это только то, что я запомнил... Выкладывай весь проект, что ли... |
| Автор: L0GA4 15.12.2009, 17:47 |
| Это проект который я переделываю. Для моей задачи |
| Автор: L0GA4 15.12.2009, 17:48 |
| А это самая начальная НЕ моя программа |
| Автор: L0GA4 15.12.2009, 17:51 |
| Если с первой идеи не появятся, есть 2я которую можно вместо 1й сделать Впринцепи она похожа на задачу 1.zip которую я выложил выше, только здесь надо чтобы шатун двигался не вдоль оси Ох , а под углом. ( в общем все на рисунке |
| Автор: Демо 15.12.2009, 19:27 |
| L0GA4, ничего не понятно с твоим кодом - к какой задаче он относится. Приложи описание задачи, код, описание проблем. Добавлено через 14 секунд PS. А всё лишнее тут нафиг не нужно. |
| Автор: L0GA4 15.12.2009, 21:51 | ||
| мозг не работает т.к. уже 3е сутки этим занимаюсь. естественно на бумаге все решается сначала. 1)есть пара моментов. Да. на рисунке я обозначил что я знаю : координаты точки О ( откуда и строится всё остальное ) жестко прописаны, у точки А1 изменяется только X след. образом:
где xc1 - начальная точка AO - радиус -omega задает направление и скорость t - просто увеличивается на 0.01 - ну чтобы изменять сам угол. в общем обыкновенная параметризация функции окружности. зачем так - чтобы ползунок двигался вперед и назад. (расстояния на которое он может передвигаться определяется радиусом) 2)Ограничения нет. у точки А2 я знаю только У(для простоты положим её равной yc1, т.е равной У начальной точки). Мне нужно узнать координаты ИКСА. Длину допустим я знаю, но как через длину узнать координаты?. В делфи ведь линии можно только по координатам строить... вроде бы и крутиться мысль что дельтаХ первого ползунка равняеться дельтаУ второго ползунка...т.е. изменение координат будут зависеть от этих изменений(дельта ну или "|старая коордт-новая коордт|" ) но как это в делфи записать? Демо, извиняюсь, сейччас попробую подробнее описать эти 2 задачи. |
| Автор: RockClimber 15.12.2009, 23:38 | ||
| Теперь мой мозг отключается, потому что поздно и пора спать Я тут долго и много понаписал, а потом до меня дошло, и я все стер
Ну как бы теорема Пифагора длина - r, не что иное, как: r^2=(x1-x2)^2+(y1-y2)^2 x1 и y1 - (координаты А1) известны (вычислены ранее), y2 - известно (координата А2), r - известно. Остается одна неизвестная - пишешь для нее формулу, а потом итог округляешь до целого и выводишь на экран. Я же говорю, сначала выведи формулу, а потом делай вычисления. Delphi в этой задаче вообще непричем... |
| Автор: L0GA4 17.12.2009, 10:25 |
| Сделал, спасибо! основная ошибка - система координат, на бумаге рисовал обычную. а на компе-то другая... ) |