XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
darker

offline
Опыт: 2,291
Активность:
Как найти ети углы В ВАРЕно ето ужепжно
(+ учет скорости, но ето можно уже пошитать )
Миниатюры
Кликните на картинку для увеличения
Название:  тВекторы.JPG
Просмотров: 29
Размер:  21.4 Кбайт  
Старый 03.01.2009, 21:20
J
expert
offline
Опыт: 48,447
Активность:
т.е. это у тебя 2d и нужо сделать отталкивание от границ?
ну вопервых к каждой границе должна быть проведена нормаль (ручками), когда прожектил пересекает границу то (я не сильно то уш помню, скажу но это будет наверно) чтобы найти вектор отражения нужно normalize(2*Normal*NormalDotDirProg-DirProg)
где DirProg нормализованое направление снаряда
Normal нормализованя нормаль
NormalDotDirProg сколярное произведение направления снаряда и нормали
Старый 03.01.2009, 21:48
mitryz

offline
Опыт: 1,225
Активность:
Вычисление вектора нормали рельефа в точке x,y
пусть точка x,y - точка из которой надо вычислить нормаль;

[X вектора 1] = Radius*2
[Y вектора 1] = 0.00
[Z вектора 1] = [Z точки(x+Radius, y)] - [Z точки(x-Radius, y)]
[X вектора 2] = 0.00
[Y вектора 2] = Radius*2
[Z вектора 2] = [Z точки(x, y+Radius)] - [Z точки(x, y-Radius)]

vx = [Y вектора 1]*[Y вектора 2] - [Z вектора 1]*[Y вектора 2]
vy = [Z вектора 1]*[X вектора 2] - [X вектора 1]*[Z вектора 2]
vz = [X вектора 1]*[Y вектора 2] - [Y вектора 1]*[X вектора 2]

полученый вектор (vx,vy,vz) будет нормалью точки x,y.

mitryz добавил:
если 2d
У объекта есть скорость sx,sy и положение в данный момент x,y.
Если точка x-size,y - стена, то sx = -sx;
Если точка x+size,y - стена, то sx = -sx;
Если точка x,y-size - стена, то sy = -sy;
Если точка x,y+size - стена, то sy = -sy;
и всё
Старый 03.01.2009, 21:56
J
expert
offline
Опыт: 48,447
Активность:
darker, нахождение векторов отражения что сказал mitryz - это только для стенок поралельных осям координат
Старый 03.01.2009, 22:01
mitryz

offline
Опыт: 1,225
Активность:
J, стенки параллельные осям координат т.к. в варкрафте текстуры квадратные =)
Старый 03.01.2009, 22:03
J
expert
offline
Опыт: 48,447
Активность:
а, вот что он имел в виду под словом текстура, имелось в виду текстура тайлов, я че-то сначало не понял...
Старый 03.01.2009, 22:04
ScorpioT1000
Работаем
offline
Опыт: отключен
struct vector
real ax
real ay
real az
real bx
real by
real bz
endstruct
вот как строится, еще вопросы?
Старый 03.01.2009, 22:10
J
expert
offline
Опыт: 48,447
Активность:
SC o_O а зачем 2 группы координат?
Старый 03.01.2009, 22:15
ScorpioT1000
Работаем
offline
Опыт: отключен
J, можно конечно направляющую сделать и расстояние но так имхо нагляднее
Старый 03.01.2009, 22:19
J
expert
offline
Опыт: 48,447
Активность:
что нагляднее? вектор это xyz и все
Старый 03.01.2009, 22:24
darker

offline
Опыт: 2,291
Активность:
Цитата:
Сообщение от SC
struct vector
real ax
real ay
real az
real bx
real by
real bz
endstruct

вот как строится, еще вопросы?

А как допустим будет опирация ну допустим взять юнита по вектору

darker добавил:
Тоесть для етого проходитса прописать кординаты ? всех стенок ?
чтоб потом определить туда де будет столкновение ?
Старый 03.01.2009, 22:59
ScorpioT1000
Работаем
offline
Опыт: отключен
Jon, o-rly?
Точка - абстрактный объект в пространстве, обладающий координатами, но не имеющий размеров, массы, направленности и каких-либо других геометрических или физических характеристик.
таким образом
Код:
struct point
    real x
    real y
    real z
endstruct


Вектор (геометрия) в геометрии — направленный отрезок.
Под направленным отрезком понимают упорядоченную пару точек, первая из которых — точка A — называется его началом, а вторая — B — его концом.
таким образом
Код:
struct vector
    point A
    point B
endstruct


переведем в единственную стракт:
Код:
struct vector
    real ax
    real ay
    real az
    real bx
    real by
    real bz
endstruct

Отредактировано dk, 05.01.2009 в 05:54.
Старый 04.01.2009, 06:20
darker

offline
Опыт: 2,291
Активность:
Цитата:
Сообщение от SC
Jon, o-rly?
Точка - абстрактный объект в пространстве, обладающий координатами, но не имеющий размеров, массы, направленности и каких-либо других геометрических или физических характеристик.
таким образом
Код:
struct point
    real x
    real y
    real z
endstruct


Вектор (геометрия) в геометрии — направленный отрезок.
Под направленным отрезком понимают упорядоченную пару точек, первая из которых — точка A — называется его началом, а вторая — B — его концом.
таким образом
Код:
struct vector
    point A
    point B
endstruct


переведем в единственную стракт:
Код:
struct vector
    real ax
    real ay
    real az
    real bx
    real by
    real bz
endstruct



Хорошо а вот дальше какие оперции можно с ним делать?

Отредактировано dk, 05.01.2009 в 05:54.
Старый 04.01.2009, 09:15
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Хорошо а вот дальше какие оперции можно с ним делать?
с таким вектором, никаких операций незделаеш, а если и сделаеш то будут лишнии расчеты чтобы в каждом вычеслении избавлятся от начальной точки

Отредактировано dk, 05.01.2009 в 05:54.
Старый 04.01.2009, 09:40
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
SC в данном случае базой (нулем) служат координаты юнита, а x,y,z это его длина.
Старый 04.01.2009, 09:51
darker

offline
Опыт: 2,291
Активность:
Цитата:
Сообщение от J
с таким вектором, никаких операций незделаеш, а если и сделаеш то будут лишнии расчеты чтобы в каждом вычеслении избавлятся от начальной точки.

Я имее в виду как делать опаерации какиенибудь не просто создавать его для красоты так ведь а например привязат еффект по вектору
Старый 04.01.2009, 10:12
J
expert
offline
Опыт: 48,447
Активность:
darker в варе нету векторов, их можно делать только в ручную, и соответствено в ручную и привязывать эффект
Старый 04.01.2009, 10:26
darker

offline
Опыт: 2,291
Активность:
Цитата:
Сообщение от J
darker в варе нету векторов, их можно делать только в ручную, и соответствено в ручную и привязывать эффект

Ну а для чего они нужны ы выложеной (мною) выше чейто наработке как там привящка идет ?
Старый 04.01.2009, 14:04
J
expert
offline
Опыт: 48,447
Активность:
юнит перемещается по координатам, что такоего?
я же скзал, есть вектор позиции, есть вктор скорости, и ускорения, перечитай тот пост, каждый раз все перескладывается, потом юнит перемещается в вектор позиции
Старый 04.01.2009, 14:06
mitryz

offline
Опыт: 1,225
Активность:
darker, что тебе конкретно нужно сделать? Тебе вроде 2d, а тут все про 3d говорят

mitryz добавил:
darker, на твоём рисунке углы искать не надо т.к. там текстуры прямоугольные.
Цитата:
Сообщение от mitryz
У объекта есть скорость sx,sy и положение в данный момент x,y.
Если точка x-size,y - стена, то sx = -sx;
Если точка x+size,y - стена, то sx = -sx;
Если точка x,y-size - стена, то sy = -sy;
Если точка x,y+size - стена, то sy = -sy;
Старый 04.01.2009, 17:44
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:41.