![]() |
|
||||||||||
|
|||||
|
т.е. на области более 180 градусов. хит быть не может
__________________
Генч. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
геныч, чего тебе надо, а ? :)
ту хочешь отскок от неизвестной формы кривой ? а, ну да - все же просто: находим точку соприкосновения, потом находим по первой производной от формулы "неизвестной кривой" формулу касательной в этой точке, после этого угол отражения равен углу падения относительно перпендикуляра к касательной в точке... всего делов-то... :)))) |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
2Nox Noctis: Во! Профессионалы пришли...
2Генч: может, если максспид>=диаметра шарика. А что дальше? Поймали мы хиттест в каком-то диапазоне углов. Впаялся этот предмет в наш шарик. Но ведь нам надо посчитать производную от самого края этого объекта. То есть после того, как мы поймали хит, нам надо двигаться пошагово назад так же проверяя хиттестом тот диапазон углов, а он по идее должен сужаться. И так мы найдём крайнюю точку. Вернее, их нам нужно две, если мы считаем производную. Короче, как только диапазон хиттеста сузится до какого-то предопределённого значения, скажем, 1-2 градуса, берём крайние точки этого диапазона и считаем производную. Тааак. Пусть x1,y1 и x2,y2 - координаты этих точек (допустим, они располагаются в порядке увеличения углов). Производная pr=(x2-x1)/(y2-y1) - тангенс угла накона касательной. Тангенс угла направления скорости шарика ySpeed/xSpeed. Угол между двумя прямыми atan(pr)-atan(ySpeed/xSpeed). Его надо прибавить к atan(pr). Получается угол отскока angle=2*atan(pr)-atan(ySpeed/xSpeed)... Надо бы проверить, не напутал ли чего... Ладно, потом проверю, времени нет, пойду делами займусь...
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
есть такая вещь - линейная интерполяция...
вот без нее здесь никак, имхо :) вопрос только как это рациональней придумать... в любом случае, наверное, придется разбивать кривую на мелкие хитовые области, каждая из которых будет иметь определенные свойства рикошета... ...то есть заранее обсчитать перпендикуляр относительно которого будет отскок для каждого участка... а как сделать эти хитовые клипы и как считать углы отскоков - это зависит от конкретного случая... ...в общем виде, универсально, это не решить, мне кажется |
![]() |
Часовой пояс GMT +4, время: 18:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|