Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Physical engine (http://www.flasher.ru/forum/showthread.php?t=66685)

TERRORist 25.08.2005 18:25

Цитата:

Сообщение от K.A.T.A.F.A.L.K.E.R
Какой ужас... Прямо соль на рану :( Ты тут сидишь с головной болью, пытаешься написать для тел произвольной формы - и тут на тебе: шарики сталкиваются :( Вы что - издеваетесь? Шарики - это примитив для начинающего флешера... Я и с закрытыми глазами напишу уравнения движения... А вот произвольная форма - это намного (на порядок!) сложнее... Уже второй месяц долбусь... :confused:

Ну ты неправ ИМХО. Заделай шарики 2px, связанные физикой. Произвольная поверхность там была - в виде четырехугольника произвольной формы, сделай n-угольник. Вот тебе и физика!

K.A.T.A.F.A.L.K.E.R 25.08.2005 18:34

да не все так просто... дело ведь вот в чем: столкновение шаров можно, перейдя в систему отсчета, связанную с одним из шаров, рассматривать как центральный удар - это важно! т.е. сложно представить столкновение шаров так чтоб это не был центральный удар (читать: невозможно). дело тут в том, что центры масс и точка соприкосновения лежат для шара всегда на одной линии. для тела произвольной формы это не так, и это очень сильно усложняет задачу :( для иллюстрации: у тебя есть два шарика, соединенные невесомым прутиком и еще одна такая же пара. они сталкиваются (один шар из первой пары налетает на второй шар из второй пары). рассчитай скорости их центров масс и угловые скорости - зае*ешься! :(

TERRORist 25.08.2005 22:25

а. да. борода.

Mr. V 26.08.2005 04:25

кхм!
я создавал такую же тему еще в начале лета...у катафалкера рейтинг выше...
у меня вопрос: как обнаружить точку соприкосновения двух мувейклипов?можно такое сделать?я знаю лишь супергромоздкий способ.ща буду проверять его

TERRORist 26.08.2005 12:11

может поведаешь?

K.A.T.A.F.A.L.K.E.R 26.08.2005 16:18

Цитата:

Сообщение от Mr. V
кхм!
я создавал такую же тему еще в начале лета...у катафалкера рейтинг выше...
у меня вопрос: как обнаружить точку соприкосновения двух мувейклипов?можно такое сделать?я знаю лишь супергромоздкий способ.ща буду проверять его

Да я уже писал, что с этим разобрался - определение точек соприкосновения у меня работает просто зашибись :) В кратце - я создавал процедУрку addAnchors, которая раз и навсегда проходила мувик с шагом в несколько градусов (радиальная система координат) и через хиттест отлавливала все дырки и границы мувика и создавала массив ключевых точек, а потом и интерполировала (пока линейная интерполяция)...

Futs 26.08.2005 18:09

2k.a.t.a.f.a.l.k.e.r
блин я с этим парюсь, очень плохо выходит

Mr. V 28.08.2005 02:12

2k.a.t.a.f.a.l.k.e.r
это типа вот этого?
выложи свое.
Я так понимаю весь принцип этого физдвижка в том, что центр тяжести тела должен установится над точкой опоры да?
а еще проблема,как провернуть тело вокруг не-точки-регистрации,
ты этого случайно не сделал?

Mr. V 28.08.2005 02:15

Вложений: 1
ой! вот

K.A.T.A.F.A.L.K.E.R 29.08.2005 17:23

Цитата:

Сообщение от Mr. V
2k.a.t.a.f.a.l.k.e.r
это типа вот этого?
выложи свое.
Я так понимаю весь принцип этого физдвижка в том, что центр тяжести тела должен установится над точкой опоры да?
а еще проблема,как провернуть тело вокруг не-точки-регистрации,
ты этого случайно не сделал?

Хм, не просто типа - один в один :) Почти... Только, наверное, не совсем... Похоже на то что здесь реальный хиттест, а я хиттест как раз не использую (точнее, использую - но лишь раз, при инициализации объекта)... Вращение вокруг произвольной точки - ну, это в принципе не вопрос... Вкратце: пускай точка (x,y) - та, вокруг которой надо вращать... Тады, (сокращенно!) пишем че-то типа
r=Math.sqrt((x-_x)*(x-_x)+(y-_y)*(y-_y));
a++;
_x=x+r*Math.sin(a*0.17);
_y=y-r*Math.cos(a*0.17);
_rotation = a + dA;
где dA - че-то типа начального угла поворота... Не тестил, но должно сработать :)
хотя это все не надо - любое движение тела есть суперпозиция движения центра масс (по прямой) + вращение вокруг центра масс...


Часовой пояс GMT +4, время: 08:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.