dot_product_normalised

Syntaxe:

dot_product_normalised(x1, y1, x2, y2)


Argument La description
x1 La coordonnée x du premier vecteur.
y1 La coordonnée y du premier vecteur.
x2 La coordonnée x du deuxième vecteur.
y2 La coordonnée y du second vecteur.


Retours: Real


La description

Le produit scalaire est une valeur exprimant la relation angulaire entre deux vecteurs et se trouve en prenant deux vecteurs, en les multipliant ensemble et en ajoutant ensuite les résultats. Le nom "produit scalaire" est dérivé du point centré "·" qui est souvent utilisé pour désigner cette opération (le nom alternatif "produit scalaire" met l'accent sur la nature scalaire plutôt que sur la nature vectorielle du résultat).

La formule mathématique réelle peut être écrite comme ceci:


Ainsi, en 2D, le produit scalaire des vecteurs a [x1, y1] et b [x2,2] est x1x2 + y1y2, ce qui signifie que le dot_product de GameMaker Studio 2 est calculé comme GameMaker Studio 2:

a · b = (x1*x2)+(y1*y2);

Qu'en est-il du produit scalaire normalisé ? Le produit scalaire normalisé a été corrigé de manière à ramener la valeur de retour entre -1 et 1 (voir Vecteurs normalisés pour des informations plus détaillées), ce qui est exceptionnellement utile dans de nombreuses circonstances, en particulier lorsqu'il s'agit d'éclairage et autres. Fonctions 3D.


Exemple:

var x1, y1, x2, y2;
x1 = lengthdir_x(1, image_angle);
y1 = lengthdir_y(1, image_angle);
x2 = o_Player.x - x;
y2 = o_Player.y - y;
if dot_product_normalised(x1, y1, x2, y2) > 0 seen=true else seen=false;

Le code ci-dessus crée un vecteur en utilisant l'angle d'image des instances, puis récupère le vecteur de l'objet joueur "o_Player" sur lui-même. Enfin, il calcule le produit scalaire de ces deux vecteurs et s'il est supérieur à 0, il positionne la variable "seen" sur true, et s'il est égal ou inférieur à 0, il la définit sur "false".