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