Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Отрисовка траектории движения шара (http://www.flasher.ru/forum/showthread.php?t=153156)

zmeevolk 29.03.2011 17:29

Отрисовка траектории движения шара
 
Вложений: 1
Всем привет! Как лучше реализовать отрисовку траектории шара в бильярде, что то типа как на прикрепленой картинке.
Я думаю что рисовать нао средствами ас3, начальная точка линии - белый шар, но вот совсем не понятно как сделать конечную точку?

Zebestov 29.03.2011 18:44

Мне нравится этот вопрос. "Отрисовка" значит. Т.е. ты игру даже не представляешь как сделать (очевидно), но тебя интересует всего лишь "как отрисовать траекторию"?

P.S.
Тебе определенно следует либо оставить эту затею, либо погрузиться в геометрию с головой.

P.P.S.
Только сейчас заподозрил — ты часом не на Box2D решил все это сделать? 0о

zmeevolk 29.03.2011 19:08

ну еее..... :)
ну с чего тебе так очевидно?
ну интересует всего лишь,
и в геометрию погружусь если надо,
и с чего это ты заподозрил?
Ты б не выпедндривался лучше, а дал нормальный совет.

Hauts 29.03.2011 19:15

Отрисовка — функция, в аргументы которой поступает массив точек в правильной последовательности. Рисует линии от первой точки до второй, от второй до третьей и так далее.

Получить эти точки можно математически, зная положение шарика, его радиус, направление удара и ограничение стола. Силу удара расчитывать нецелесообразно.

Физику столкновения с другими шариками и со стенками стола можете почитать тут. Там и про ваш вопрос достаточно материала.

Найти конечную точку можно, вот только все это некрасиво будет. Представьте себе длинный изломаный путь шарика (а прокатится он, очевидно, много) на экране? В общем не советую :)

Кстати, вот стало интересно — вы делаете игрушку рамблера? Или это просто иллюстрация?

Zebestov 29.03.2011 19:22

Цитата:

Сообщение от zmeevolk (Сообщение 984797)
ну с чего тебе так очевидно?

Очевидно это не только мне, уверяю. Почему? Ну как же! Ту задача на банальный прямоугольный треугольник, и ты ее не можешь решить! А как ты будешь считать абсолютно упругое соударение шаров (хотя бы)?
Цитата:

Сообщение от zmeevolk (Сообщение 984797)
и в геометрию погружусь если надо,

надо, надо )
Цитата:

Сообщение от zmeevolk (Сообщение 984797)
и с чего это ты заподозрил?

Ну там просто знаний геометрии не нужно... только получилась бы чистая халтура ;)
Цитата:

Сообщение от zmeevolk (Сообщение 984797)
Ты б не выпедндривался лучше, а дал нормальный совет.

Дал же вроде:
Цитата:

Сообщение от zebestov
Тебе определенно следует либо оставить эту затею, либо погрузиться в геометрию с головой.

Или тебе нужно рассказать, как построить прямоугольный треугольник (гипотенуза у тебя уже перед глазами) и найти искомую точку пересечения на основании размеров стола, позиции шарика и угла между кием и, например, короткой стороной стола? Ну вот, рассказал :)

zmeevolk 29.03.2011 19:39

Цитата:

Сообщение от Hauts (Сообщение 984798)
Кстати, вот стало интересно — вы делаете игрушку рамблера? Или это просто иллюстрация?

Нет, просто взял как иллюстрацию. За ответ большое спасибо!

Добавлено через 3 минуты
Цитата:

Сообщение от Zebestov (Сообщение 984799)
Ну вот, рассказал :)

Ну вот, молодец. А то сразу выпеднриваться. Ты же не сразу таким умным стал? :D

Idon 29.03.2011 19:56

zmeevolk, Прямоугольными треугольниками тут не обойдёшься, потому что по-хорошему, тут есть ситуации соударения с углом, шаром и аркой. hittest`ом тут тоже не обойдешься, потому что надо определять, с чем раньше произойдет соударение - с шаром, углом, аркой, лузой или бортом. При достаточно большой скорости шара, определенном его положении и угле, на его пути может быть всё сразу. От того, с чем раньше произойдёт соударение зависит угол отражения и передача импульса, наконец.

Тут может быть несколько решений:
1) Разбиение вектора скорости на минимальные отрезки и расчёт коллизий на каждом отрезке.
2) Векторный расчёт коллизий. (скалярные произведения векторов и т.п.) Потому что любой участок борта, кроме арки может быть представлен как вектор.
3) Композиция этих методов.

Но физика тут самое простое. Гораздо сложней правдоподобное вращение шаров, чтобы создавалась иллюзия 3д. Воображение придётся включать именно тут)

Hauts 29.03.2011 20:02

Idon, хорошо расписали способы continuous collision detection. Первый вариант называется multisampling :) А арку можно представть неподвижным шаром, например.

По-моему тут самое сложное, что может быть — это дугообразная траектория движения шара при "скользящем" ударе. Терминологии бильярда не знаю, к сожалению.

zmeevolk 29.03.2011 20:02

Цитата:

Сообщение от Idon (Сообщение 984807)
zmeevolk, Прямоугольными треугольниками тут не обойдёшься, потому что по-хорошему, тут есть ситуации соударения с углом, шаром и аркой.

Спасибо Вам, добрый человек.

Zebestov 29.03.2011 20:03

Цитата:

Сообщение от zmeevolk (Сообщение 984803)
Ну вот, молодец. А то сразу выпеднриваться. Ты же не сразу таким умным стал? :D

Да я уже такой старый, что и не помню, когда "таким умным стал" ;) это же школьная программа.
А по поводу всего остального, с чем придется сталкиваться тебе и твоим шарам (мы все еще о бильярде говорим), Idon все верно прокомментировал — нужно знать больше, чем прямоугольный треугольник. Геометрия и физика тебе в помощь... для начала.


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

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