Forum Le CBNA

Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA.
 
AccueilAccueil  ­FAQFAQ  ­RechercherRechercher  ­S'enregistrerS'enregistrer  ­MembresMembres  ­ConnexionConnexion  
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 [script] Intersection entre deux lignes : booléen

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
onilink_
Utilisateur moyen


Nombre de messages: 63
Localisation: Le vigan (Pres de Ganges)
Projet Actuel: Convertisseur : Projet .gm6 >> Projet C++ SDL + FMOD
Avancement:
10 / 10010 / 100


MessageSujet: [script] Intersection entre deux lignes : booléen   Sam 7 Nov - 16:37

Cette fonction retourne un booléen : 1 si il y a intersection et 0 si il n'y en a pas.

line_intersect :
Code:

//line_intersect(x1,y1,x2,y2,x3,y3,x4,y4)
var x1,y1,x2,y2,x3,y3,x4,y4,a,b,c,d,ix,iy,inter;

x1 = argument0 ; y1 = argument1
x2 = argument2 ; y2 = argument3
x3 = argument4 ; y3 = argument5
x4 = argument6 ; y4 = argument7

a = (y4-y3)*(x2-x1) - (x4-x3)*(y2-y1)
if (a == 0) { return 0 }

b = (x4-x3)*(y1-y3) - (y4-y3)*(x1-x3)
c = (x4-x3)*(y1-y3) - (y4-y3)*(x1-x3)
b = b / a

d = (x2-x1)*(y1-y3) - (y2-y1)*(x1-x3)
d = d / a

ix = x1 + b*(x2-x1)
iy = y1 + b*(y2-y1)
inter = 0

if (b > 0 && b < 1 && d >0 && d < 1)
inter = 1

return inter


Vive les maths p_lol .
Revenir en haut Aller en bas
 

[script] Intersection entre deux lignes : booléen

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Programmation :: Scripts GML-
Poster un nouveau sujet   Répondre au sujet