![]() |
Функция реалистичного вращения эллипса
Знаю что можно сделать подобное с окружностью с помощью функции такого рода:
Код AS3:
Но как узнать то же самое у эллипса, и как осуществить его вращение? Оно ведь будет неравномерным при разных положениях эллипса. |
Эллипс ничем не примечателен в этом отношении - вам всего нужно придумать где будет точка вращения и до вращения отнять смещение по X и Y а после вращения X и Y добавить:
Код AS3:
|
Что такое матрица в данном случае?
Каким образом задать точку вращения? Что за объекты tx и ty? Каким образом присваиваеться трансформированная матрица фигуре? И почему сначала отнимается смещение, а потом добавляется? Можешь привести пожалуйста пример, и расписать что зачем нужно... |
Matrix - вбить название класса в редакторе, выделить и нажать F1, аналогично Point. tx и ty - смещение матрицы по оси абсцисс и ординат соответственно.
Код AS3:
|
Мы похоже друг друга не поняли. :)
Под эллипсом я подразумевал круг с высотой неравной ширине, т.е. по другому говоря -овал. Кстати, в твоем примере объект не движется по X. Добавлено через 9 минут Код AS3:
Тоже самое нужно сделать с овалом, вот только у овала постоянно будет меняться высота, и без правильных расчетов он будет 80% движений висеть в воздухе. Т.е. овал должен постоянно соприкасаться с землей, но при этом двигаться на то расстояние, насколько он повернулся. |
Вложений: 1
Вот о чем я говорю (см. приложение).
|
Еще раз посмотрите пример...
|
Я просто код скопипастил и проверил.
|
И что не получилось?
|
|
>>Но как узнать то же самое у эллипса
длину элипса аналитически нельзя выразить, можно подобрать или воспользоваться каким-либо численным приближением (легко нагуглишь) >>и без правильных расчетов он будет 80% движений висеть в воздухе это можно, весь расчет заключается в определении текущего радиуса Код AS3:
|
Цитата:
|
А... в смысле нужно было рассчитать смещение точки вокруг которой элипс вращается, если дано, что он должен двигаться строго горизонтально вправо?
Ну тогда да, мой пример не в кассу :) Но пользуясь тем же примером вы можете рассчитать и это т.как для примера silin'a вам нужно чтобы точка регистрации еллипса была в его центре. А для моего примера вам нужно будет смещать точку трансформации на sin угла помноженый на разность большого и маленького радиусов по абсциссе, а по ординате орибавлять cos того же угла помноженый на ту же разность. |
Цитата:
если ты под формулой эллиптический интеграл имеешь ввиду, так он не берется, только численными методами его посчитать можно |
Можно строить касательную проходящую через точку, находить ее угол и поворачивать эллипс на этот угол относительно этой точки, после поворота опустить эллипс по Y на разность между Y_ткущей и Y_предыдущей точек, и так для каждой точки эллипса (или с интервалом в несколько точек).
|
Вложений: 1
Цитата:
silin огромное тебе спасибо за ответ. Как раз таки найденный радиус можно использовать для того, чтобы рассчитать текущее расстояние за 1 повернутый градус. Т.е.: Код AS3:
|
не совпадает потому, что у тебя там не эллипс, а овал
разница есть, и если она тебе не ведома, то сходи по ссылкам, что дал dimarik (вместо того чтобы огрызаться не по делу) |
Ну так я все правильно значит имел ввиду (судя по ссылкам с википедии).
А wvxvw просто попутал разные фигуры и своим статусом супер модератор заставил изменить мое мнение моментально :) И в коде у меня тоже получается эллипс (сужу по картинке из вики по эллипсу) |
| Часовой пояс GMT +4, время: 19:00. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.