Форум: "Игры";
Текущий архив: 2015.01.18;
Скачать: [xml.tar.bz2];
ВнизОтклонение вектора Найти похожие ветки
← →
Jkot © (2007-06-04 12:08) [0]Как сделать отклонение вектора на опр. угол?
Собсно мне нужен разлёт частиц, вектор это общее направление, разлёт это насколько они теоритически могут отклониться...
← →
Jkot © (2007-06-04 12:10) [1]Ой забыл сказать что это в 3D всё =)
← →
Efir © (2007-06-04 12:57) [2]x = x0*cos(a)-y0*sin(a)
y = x0*sin(a)+y0*cos(a)
x0, y0 - начальные координыты
a - угол поворота
← →
Jkot © (2007-06-04 15:56) [3]а для Z ??
← →
Efir © (2007-06-04 17:12) [4]Матрица поворота вокруг оси Ох:
1 0 0 0
0 cos(a) -sin(a) 0
0 sin(a) cos(a) 0
0 0 0 1
Матрица поворота вокруг оси Оy:cos(a) 0 sin(a) 0
0 1 0 0
-sin(a) 0 cos(a) 0
0 0 0 1
Матрица поворота вокруг оси Оz:cos(a) -sin(a) 0 0
sin(a) cos(a) 0 0
0 0 1 0
0 0 0 1
Для поворота умножаешь свой вектор на нужную тебе матрицу поворота.
← →
Jeer © (2007-06-05 14:29) [5]
> Собсно мне нужен разлёт частиц, вектор это общее направление,
> разлёт это насколько они теоритически могут отклониться.
> ..
Для этого надо знать, свойства системы частиц, что является основой для "разлета" и в каком силовом поле это происходит.
В итоге - математическую модель конкретного физического явления.
← →
Jeem (2007-06-06 01:22) [6]
> Efir © (04.06.07 17:12) [4]
>
> Матрица поворота вокруг оси Ох:
Ему же нужно вращать не вокруг осей, а отклонить вектор от заданного на определённый угол, в случайном направлении.
← →
Jkot © (2007-06-06 05:10) [7]>Jeem (06.06.07 01:22) [6]
>Ему же нужно вращать не вокруг осей, а отклонить вектор от заданного на >определённый угол, в случайном направлении.
Именно так.
>Jeer © (05.06.07 14:29) [5]
>Для этого надо знать, свойства системы частиц, что является основой для >"разлета" и в каком силовом поле это происходит.
>В итоге - математическую модель конкретного физического явления.
Для игры мне подойдет и фальш. система, в 3D Max тоже система строится вовсе не на физ. законах, а на указанных параматрах, у меня параметры примерно те-же, в данном слачае я спрашиваю как сделать аналог Spread в максе???
>Efir © (04.06.07 17:12) [4]
>Для поворота умножаешь свой вектор на нужную тебе матрицу поворота.
А на делфях код готовый есть, а то я токо C++ нагуглил, я переведу кончно но просто вдрег есть.. И ещё там везде говорится что вектор должен быть размерностью одинаков с матрицей, т.е он должен быть из 4 значаний, 4-длина?
P.S:Прости я просто нуб в векторах....
← →
Леон © (2007-06-07 19:11) [8]> 4 значаний, 4-длина?
4 - время ( шутка :) )
На сколько я знаю 4-я компонента всегда нулевая - забей на нее. (т.к. используется только в матрицах преобразования для трансляции - паралелльного переноса)
а по поводу разлета... имхо нужно копать в сторону циллиндрических систем координат... и брать случайный угол при одинаковых остальных двух координатах в этой системе
← →
grisme © (2007-06-08 19:42) [9]4я компонента - это т.н. W-координата, забивать не стоит :o) можно с ней "поиграцо" и посмотреть что получится в результате ее изменения
← →
Мысл (2007-06-09 06:25) [10]Надо сначала предположить, что допустим у нас вектор идёт вдоль оси Z на единицу, а координаты X и Y вычислить как случайные числа, из заданной области разброса.
А потом повернуть полученные векторы из направления вдоль оси Z на нужное направление.
← →
@!!ex_ (2007-06-09 08:36) [11]> На сколько я знаю 4-я компонента всегда нулевая - забей
> на нее.
Не 0, а 1.
0*x = 0
1*x = x
какой из вариантов не меняетя значение? 1!
Поэтому и матрица стандартная единичная, а не нулевая.
← →
Леон © (2007-06-11 20:52) [12]> Не 0, а 1
хм.. и для векторов тоже??
← →
Chemodan © (2007-06-12 10:06) [13]Решаем систему из двух уравнений:
v1.x*v0.x+v1.y*v0.y+v1.z*v0.z=Alpha
v1.x*v1.x+v1.y*v1.y+v1.z*v1.z=1
При этом:
0<=v1.x<=1
0<=v1.y<=1
0<=v1.z<=1
Где
v1 - искомый вектор
v0 - заданное направление, нормализованный вектор
Alpha - тот самый разлет, т.е отклонение получаемого вектора от задаваемого направления
Одну компоненту v1 задаем случайным образом из интервала [0, 1], в этом случае система разрешима, и будет получен вектор удовлетворяющий условию.
← →
Jkot © (2007-06-12 17:37) [14]А я нашол всё нужные функции в том числе и поворот вектора в GLScene, надо почаше смотреть будет что там есть =)
← →
Жпёс (2007-06-13 05:33) [15]
> Jkot © (12.06.07 17:37) [14]
>
> А я нашол всё нужные функции в том числе и поворот вектора
> в GLScene, надо почаше смотреть будет что там есть =)
Так покажи же нам их!
← →
Думкин © (2007-06-13 12:01) [16]
> Chemodan © (12.06.07 10:06) [13]
ой ли?
← →
имя (2007-08-08 20:45) [17]Удалено модератором
← →
Dawn-cm (2007-11-27 10:27) [18]Удалено модератором
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2015.01.18;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c