2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Найти вектор отражения
Сообщение02.12.2012, 18:40 
Подскажите пожалуйста как найти угол отражения вектора, нашел эту статью http://www.ecto.ru/details/reflex_drop/ , но так и не понял как найти угол нормали.

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 19:25 
Аватара пользователя
Это какая-то очень плохая статья. Поищите другую.

-- 02.12.2012 20:33:55 --

P. S. Подразумевается, на самом деле, не "угол", а направление - и направление нормали, и направление отражённого вектора. Это полезно в случаях, когда поверхность вам задана в каком-то общем положении, числами. Тогда, как искать направление нормали - зависит от способа задания поверхности. Если поверхность, например, задана уравнением плоскости $\mathbf{Ar}=D,$ то вектор нормали будет $\pm\mathbf{A}/A.$ Если поверхность задана (в 3D) параметрически $\mathbf{r}=\mathbf{u}p+\mathbf{v}q,$ то вектор нормали будет $\pm[\mathbf{uv}]/|[\mathbf{uv}]|.$ Вектор - это ещё не угол (хотя с векторами работать бывает проще, чем с углами), углы можно найти, например, по направляющим косинусам $c_i=n_i/n.$

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 19:40 
Munin в сообщении #653122 писал(а):
P. S. Подразумевается, на самом деле, не "угол", а направление - и направление нормали, и направление отражённого вектора. Это полезно в случаях, когда поверхность вам задана в каком-то общем положении, числами. Тогда, как искать направление нормали - зависит от способа задания поверхности. Если поверхность, например, задана уравнением плоскости $\mathbf{Ar}=D,$ то вектор нормали будет $\pm\mathbf{A}/A.$ Если поверхность задана (в 3D) параметрически $\mathbf{r}=\mathbf{u}p+\mathbf{v}q,$ то вектор нормали будет $\pm[\mathbf{uv}]/|[\mathbf{uv}]|.$ Вектор - это ещё не угол (хотя с векторами работать бывает проще, чем с углами), углы можно найти, например, по направляющим косинусам $c_i=n_i/n.$

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

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 19:57 
Если у вас блоки прямоугольные, выравненные по осям координат, тогда
Код:
ЕСЛИ ударились о горизонтальную грань блока
ТО vy := -vy;
КОНЕЦ_ЕСЛИ
ЕСЛИ ударились о вертикальную грань блока
ТО vx := -vx;
КОНЕЦ_ЕСЛИ
где vx,vy — скорости движения шарика по оси $Ox$ и $Oy$ соответственно.

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:09 
Joker_vD
эм, у меня щас так и работает, просто почему в играх используются сложные алгоритмы если все так просто и щас отскок какой то не ралистичный..

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:31 
В арканоидах щас, в основном, непрямоугольные и движущиеся блоки — простые уже никому не интересны.

MathNoob в сообщении #653150 писал(а):
и щас отскок какой то не ралистичный..
Осторожнее с попаданием шарика в углы.

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:36 
Аватара пользователя
Сложные алгоритмы нужны, если блоки повёрнуты как-то боком. Ещё отдельный случай - удар об угол, если им заморачиваться.

А какие конкретно у вас претензии к реалистичности?

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:37 
arseniiv писал(а):
В арканоидах щас, в основном, непрямоугольные

не видел таких арканоидов , ну и это курсовая так что и прямоугольные сойдут
arseniiv писал(а):
Осторожнее с попаданием шарика в углы.

да знаю)

-- 02.12.2012, 21:44 --

Munin ну вот допустим пример http://www.ecto.ru/~ecto/work/stuff/js/dots/index.html там шарики отлетают "как то реально" или это уже у меня крыша едит)

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 21:16 
Аватара пользователя
arseniiv в сообщении #653163 писал(а):
В арканоидах щас, в основном, непрямоугольные и движущиеся блоки — простые уже никому не интересны.

Ужас. Ещё и в подвижную СО заходить-выходить :lol:

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 21:20 
Аватара пользователя
Имхо, вполне реально. Поскольку там поверхности кривые - окружности - то вектор нормали для них вычисляется как-то посложнее (например, для окружности с центром $\mathbf{r}_0$ и радиусом $R$ вектор нормали в точке $\mathbf{r}$ будет $(\mathbf{r}-\mathbf{r}_0)/|\mathbf{r}-\mathbf{r}_0|=(\mathbf{r}-\mathbf{r}_0)/R$).

 
 
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 22:42 
MathNoob в сообщении #653166 писал(а):
не видел таких арканоидов
Например, «Гиперболоид» Alawar (играл в демо-версию).

MathNoob в сообщении #653166 писал(а):
там шарики отлетают "как то реально" или это уже у меня крыша едит)
Просто на них кроме этого действует ещё и сила тяжести — но во время отскока она роли не играет, не смешивайте эти две вещи.

 
 
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 00:32 
Аватара пользователя
arseniiv в сообщении #653221 писал(а):
Просто на них кроме этого действует ещё и сила тяжести — но во время отскока она роли не играет, не смешивайте эти две вещи.

Почти не играет: там встречаются случаи отскока на малой скорости, когда в результате отскочившая точка совершает еле видимую (или невидимую) параболу, и снова падает на поверхность, как будто "скользя" по ней.

-- 03.12.2012 01:32:29 --

Кроме того, тут могут быть реализованы потери скорости при отражении...

 
 
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 09:52 
Munin в сообщении #653315 писал(а):
Кроме того, тут могут быть реализованы потери скорости при отражении...

так и есть, я разбирал исходники, но именно по алгоритму толком нечего не понял, но используеться тот алгоритм ссылку на который я давал в начале статьи но некоторые нюансы я так и не понял, поэтому и спросил тут...

 
 
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 16:04 
Аватара пользователя
При потерях закон "угол падения равен углу отражения" может и не выполняться... От конкретной модели потерь зависит.

 
 
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 16:23 
Munin, а чем плоха та статья?
я вроде все понял, только не понял как найти угол нормали и все .

 
 
 [ Сообщений: 18 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group