![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
L0GA4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.6.2005 Репутация: нет Всего: нет |
Здравствуйте. Возникла проблема построения анимации. В аттаче рисунок того что надо сделать.
Задача: нужно сделать анимацию. Балка OA1 растягивается, все остальные балки(A1A2, A2B ) жесткие. Нужно сделать так, чтобы при перемещении ползунка A1 , перемещался и ползунок А2. Так, чтобы длина A1A2 не изменялась. При этом при перемещении ползунка A2 катилась окружность B. (черная точка на окружности показывает что катится) Вот что получилось, но изменяется длина...пните кто-нить, а то мозг не работает... как рисовать окружность понятно - координата по х будет изменяться на длину дуги. хелп!
Присоединённый файл ( Кол-во скачиваний: 26 ) ![]() |
|||
|
||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Вставил твой код на форму. Компилятор выдал сообщение, что не знает, что за переменные: L, H, x1, x2, xc1, xc2, yc1, yc2 - это только то, что я запомнил... Выкладывай весь проект, что ли...
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
L0GA4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.6.2005 Репутация: нет Всего: нет |
Это проект который я переделываю. Для моей задачи
Присоединённый файл ( Кол-во скачиваний: 20 ) ![]() |
|||
|
||||
L0GA4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.6.2005 Репутация: нет Всего: нет |
||||
|
||||
L0GA4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.6.2005 Репутация: нет Всего: нет |
Если с первой идеи не появятся, есть 2я которую можно вместо 1й сделать
Впринцепи она похожа на задачу 1.zip которую я выложил выше, только здесь надо чтобы шатун двигался не вдоль оси Ох , а под углом. ( в общем все на рисунке Присоединённый файл ( Кол-во скачиваний: 18 ) ![]() |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: нет Всего: 50 |
L0GA4,
ничего не понятно с твоим кодом - к какой задаче он относится. Приложи описание задачи, код, описание проблем. Добавлено через 14 секунд PS. А всё лишнее тут нафиг не нужно. -------------------- |
|||
|
||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Это ключевая фраза, она многое объясняет. Потому что перед нами типичная программа моделирования, которая решается с конца. Это, я так понимаю, исходные данные: Я бы сделал так. Сначала выписать уравнения, задающие движение. Точка О закреплена - хорошо, ее координаты известны. Точка А1 двигается - записываем функцию координаты от времени. Теперь ее координаты можно считать известными. Если ее координаты известны и известна длина отрезка А1А2, а также ограничения на движение точки А2 (как я понял, они есть) - то ее координаты легко рассчитываются по найденным ранее значениям. Ну и так далее. Когда все формулы будут записаны (хотя бы на бумажке), задача сама решится. А без них код ковырять можно до второго пришествия. -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
L0GA4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.6.2005 Репутация: нет Всего: нет |
мозг не работает т.к. уже 3е сутки этим занимаюсь.
естественно на бумаге все решается сначала. 1)есть пара моментов. Да. на рисунке я обозначил что я знаю : координаты точки О ( откуда и строится всё остальное ) жестко прописаны, у точки А1 изменяется только X след. образом:
где xc1 - начальная точка AO - радиус -omega задает направление и скорость t - просто увеличивается на 0.01 - ну чтобы изменять сам угол. в общем обыкновенная параметризация функции окружности. зачем так - чтобы ползунок двигался вперед и назад. (расстояния на которое он может передвигаться определяется радиусом) 2)Ограничения нет. у точки А2 я знаю только У(для простоты положим её равной yc1, т.е равной У начальной точки). Мне нужно узнать координаты ИКСА. Длину допустим я знаю, но как через длину узнать координаты?. В делфи ведь линии можно только по координатам строить... вроде бы и крутиться мысль что дельтаХ первого ползунка равняеться дельтаУ второго ползунка...т.е. изменение координат будут зависеть от этих изменений(дельта ну или "|старая коордт-новая коордт|" ) но как это в делфи записать? Демо, извиняюсь, сейччас попробую подробнее описать эти 2 задачи. |
|||
|
||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Теперь мой мозг отключается, потому что поздно и пора спать
![]() Я тут долго и много понаписал, а потом до меня дошло, и я все стер ![]()
Ну как бы теорема Пифагора ![]() длина - r, не что иное, как: r^2=(x1-x2)^2+(y1-y2)^2 x1 и y1 - (координаты А1) известны (вычислены ранее), y2 - известно (координата А2), r - известно. Остается одна неизвестная - пишешь для нее формулу, а потом итог округляешь до целого и выводишь на экран. Я же говорю, сначала выведи формулу, а потом делай вычисления. Delphi в этой задаче вообще непричем... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
L0GA4 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 22.6.2005 Репутация: нет Всего: нет |
Сделал, спасибо! основная ошибка - система координат, на бумаге рисовал обычную. а на компе-то другая... )
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |