Форум 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 все верно прокомментировал — нужно знать больше, чем прямоугольный треугольник. Геометрия и физика тебе в помощь... для начала.

Idon 29.03.2011 21:01

Hauts, это резка называется. Да, не самая тривиальная задача) Поможет книжка Г. Кориолиса "Математическая теория явлений бильярдной игры". Её, кстати, можно найти в гугле)

gloomyBrain 29.03.2011 23:09

Цитата:

Hauts, это резка называется
Резка - это угол между двумя линиями:
1 линия
- берем вектор скорости битка
- прокладываем к нему перпендикуляр от центра играемого шара (того, в который мы запулили биток)

2 линия
- соединяем центры битка и играемого шара линией

Чем меньше этот угол, тем тоньше считается резка (если непонятно, можно нарисовать на бумажке =))

Вращение, придаваемое шарику называется "винт". При определенном винте шар начинает катиться по кривой или нестандартно отскакивать от бортов / других шаров

@Zebestov
Если взять nape или тот же пресловутый box2d, такая игрушка делается на раз-два. Без знаний физики и геометрии.

ЗЫ
Я как-то месяца 2 подряд провел в бильярном клубе (каждый день минимум часа по 3). Эхх.. молодость =)

Zebestov 29.03.2011 23:17

Цитата:

Сообщение от gloomyBrain (Сообщение 984859)
@Zebestov
Если взять nape или тот же пресловутый box2d, такая игрушка делается на раз-два. Без знаний физики и геометрии.

Это я и написал выше. Там же я высказал мнение, что это будет халтура. "Казуальный бильярд" для детей младшего школьного — запросто!
С другой стороны я могу судить лишь косвенно — не пользовался.

zmeevolk 30.03.2011 13:51

Цитата:

Сообщение от Zebestov (Сообщение 984861)
С другой стороны я могу судить лишь косвенно — не пользовался.

а... не юзал.. Зря я, значит, про весы у тебя спрашивал :)

А кто нибудь скинет линк на идеальный бильярд, или приближенный к идеальному? Может кто делал?

Idon 30.03.2011 14:13

Для меня в свое время ориентиром вот этот был:
http://www.miniclip.com/games/8-ball...-fire-pool/en/

zmeevolk 30.03.2011 14:17

О! там как раз такой указатель как я хочу замутить :)


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

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