2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

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

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

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

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



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Найти вектор отражения
Сообщение02.12.2012, 18:40 


21/11/12
32
Подскажите пожалуйста как найти угол отражения вектора, нашел эту статью http://www.ecto.ru/details/reflex_drop/ , но так и не понял как найти угол нормали.

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 19:25 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Это какая-то очень плохая статья. Поищите другую.

-- 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 


21/11/12
32
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 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:09 


21/11/12
32
Joker_vD
эм, у меня щас так и работает, просто почему в играх используются сложные алгоритмы если все так просто и щас отскок какой то не ралистичный..

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:31 
Заслуженный участник


27/04/09
28128
В арканоидах щас, в основном, непрямоугольные и движущиеся блоки — простые уже никому не интересны.

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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:36 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Сложные алгоритмы нужны, если блоки повёрнуты как-то боком. Ещё отдельный случай - удар об угол, если им заморачиваться.

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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 20:37 


21/11/12
32
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 
Заслуженный участник
Аватара пользователя


06/04/10
3152
arseniiv в сообщении #653163 писал(а):
В арканоидах щас, в основном, непрямоугольные и движущиеся блоки — простые уже никому не интересны.

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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение02.12.2012, 21:20 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Имхо, вполне реально. Поскольку там поверхности кривые - окружности - то вектор нормали для них вычисляется как-то посложнее (например, для окружности с центром $\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 
Заслуженный участник


27/04/09
28128
MathNoob в сообщении #653166 писал(а):
не видел таких арканоидов
Например, «Гиперболоид» Alawar (играл в демо-версию).

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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 00:32 
Заслуженный участник
Аватара пользователя


30/01/06
72407
arseniiv в сообщении #653221 писал(а):
Просто на них кроме этого действует ещё и сила тяжести — но во время отскока она роли не играет, не смешивайте эти две вещи.

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

-- 03.12.2012 01:32:29 --

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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 09:52 


21/11/12
32
Munin в сообщении #653315 писал(а):
Кроме того, тут могут быть реализованы потери скорости при отражении...

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

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 16:04 
Заслуженный участник
Аватара пользователя


30/01/06
72407
При потерях закон "угол падения равен углу отражения" может и не выполняться... От конкретной модели потерь зависит.

 Профиль  
                  
 
 Re: Найти вектор отражения
Сообщение03.12.2012, 16:23 


21/11/12
32
Munin, а чем плоха та статья?
я вроде все понял, только не понял как найти угол нормали и все .

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group