Для чого потрібні tude, dot, normalize

Прив. Дивіться. Адже магнітуда це довжина від нульових координат до точки, наприклад, магнітуда Vector3 (2,0,0) буде дорівнює 2, навіщо це потрібно і як це можна використовувати?
Що таке Dot? я-то прочитав в документації, че-то там з косинусами, але як я зрозумів, Dot це щось типу продукту множення двох векторів, тобто Dot ((1,2,2), (2,1,1)) = (1 * 2) + (2 * 1) + (2 * 1) = 6, але знову ж таки, я не розумію, навіщо це потрібно і як це можна використовувати?
Ну а на рахунок Normalize начебто понел. Нормалізірований вектор це ж вектор з магнітудою що дорівнює одиниці, означає такий вектор можна називати - "вектор напрямку" і з його допомогою пересувати предмети в потрібну сторону і якщо помножити вектор на потрібне число, то можна регулювати швидкість переміщення, я прав?


Я теж в векторах не тямлю.
За допомогою магнітуди я знаходжу швидкість автомобіля: target.rigidbody.velocity.magnitude

Vector3.magnitude - модуль вектора m = sqrt (x ^ 2 + y ^ 2 + Z ^ 2);
Vector3.Dot (Vector1, Vector2) скалярний твір 2х векторів
Vector3.Normalized - Вектор, сонаправленнимі з вихідним, але має модуль = 1

nile писал (а): Vector3.magnitude - модуль вектора m = sqrt (x ^ 2 + y ^ 2 + Z ^ 2);
Vector3.Dot (Vector1, Vector2) скалярний твір 2х векторів
Vector3.Normalized - Вектор, сонаправленнимі з вихідним, але має модуль = 1


А я питання для кого писав? Я запитав, як це використовується і чому?


Я теж в векторах не тямлю.
За допомогою магнітуди я знаходжу швидкість автомобіля: target.rigidbody.velocity.magnitude


че-т не зрозуміло, як знаходиться ця швидкість, якщо магнітуда пов довжина від нульової точки до іншої точки, ну до позиції автомобіля, я так понел, в вашому випадку.

Не знаю як, в основи не залазив
Знаю, що це швидкість

магнітуда пов довжина від нульової точки до іншої точки, ну до позиції автомобіля



Магнітуда - це довжина вектора. Що являє вектор - неважливо. Позиція, швидкість, прискорення або взагалі що Вам прийде в голову, що можна висловити двома / трьома пов'язаними числами.

magnitude - застосовуєш коли потрібно вирахувати відстань між двома позиціями. Між двома ігровими об'єктами наприклад:
(Pos1- pos2) .magnitude

normalize (vec1, vec2) = (vec1 + vec2) / (vec1 + vec2) .magnitude.
Застосовується в дійсності, як приклад, для завдання напряму. Власне, напрямок можна задати і не нормалізувати, просто магнітуда вектора може спотворити результат, це залежить від обчислень.
Наприклад, помноживши нормалізувати вектор (напрям) на значення (швидкість), ти отримаєш позицію об'єкта, в який він потрапить.

Теж саме - кажучи про dot. Dot (vec1, vec2) = COS (кут між векторами) * vec1.magnitude * vec2.magnitude.
Застосовується у випадках, якщо в залежності від кута між двома векторами змінюється інтенсивність якогось значення.
Наприклад, пишемо шейдер освітлення для об'єкта-сфери. У точці прямого попадання світла (коли нормаль полігону дивиться прямо в напрямку джерела світла) - продукт dot є максимальним. А в місцях позаду або збоку сфери, цей продукт мінімальний, так як кут між нормаллю і джерелом світла дуже великий. Ось так і робиться розсіяне освітлення.

магнітуда пов довжина від нульової точки до іншої точки, ну до позиції автомобіля



Магнітуда - це довжина вектора. Що являє вектор - неважливо. Позиція, швидкість, прискорення або взагалі що Вам прийде в голову, що можна висловити двома / трьома пов'язаними числами.


але вона ж ось так вважається. Взагалі не уявляю, як з позиції або швидкості можна дізнатися довжину>.<

WhiteDevil писал (а): magnitude - застосовуєш коли потрібно вирахувати відстань між двома позиціями. Між двома ігровими об'єктами наприклад:
(Pos1- pos2) .magnitude

normalize (vec1, vec2) = (vec1 + vec2) / (vec1 + vec2) .magnitude.
Застосовується в дійсності, як приклад, для завдання напряму. Власне, напрямок можна задати і не нормалізувати, просто магнітуда вектора може спотворити результат, це залежить від обчислень.
Наприклад, помноживши нормалізувати вектор (напрям) на значення (швидкість), ти отримаєш позицію об'єкта, в який він потрапить.

Теж саме - кажучи про dot. Dot (vec1, vec2) = COS (кут між векторами) * vec1.magnitude * vec2.magnitude.
Застосовується у випадках, якщо в залежності від кута між двома векторами змінюється інтенсивність якогось значення.
Наприклад, пишемо шейдер освітлення для об'єкта-сфери. У точці прямого попадання світла (коли нормаль полігону дивиться прямо в напрямку джерела світла) - продукт dot є максимальним. А в місцях позаду або збоку сфери, цей продукт мінімальний, так як кут між нормаллю і джерелом світла дуже великий. Ось так і робиться розсіяне освітлення.

Я сподіваюся, що не дарма писав це все
З приводу вашого малюнка, магнітуда це довжина вашого С. Якщо прикласти лінійку і підрахувати.
А з приводу швидкості і позиції, я сказав вище.
Якщо ваш об'єкт знаходиться в нулі, де C - швидкість, а нормалізувати вектор напрямку це (1,1), то перемноживши, ви отримаєте (5,5). А С - відстань, яку він пройде

WhiteDevil писал (а): Я сподіваюся, що не дарма писав це все
З приводу вашого малюнка, магнітуда це довжина вашого С. Якщо прикласти лінійку і підрахувати.
А з приводу швидкості і позиції, я сказав вище.
Якщо ваш об'єкт знаходиться в нулі, де C - швидкість, а нормалізувати вектор напрямку це (1,1), то перемноживши, ви отримаєте (5,5). А С - відстань, яку він пройде

Схожі статті