AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [script] Intersection entre deux lignes : booléen

Aller en bas 
AuteurMessage
onilink_
Modérateur
avatar

Messages : 8962
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

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

Cette fonction retourne un booléen : 1 si il y a intersection entre nos deux segments, 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,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)
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

Les coordonnées du point d'intersection sont : ix et iy


Dernière édition par onilink_ le Sam 29 Oct 2011 - 14:09, édité 3 fois
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
avatar

Messages : 1357
Localisation : Grenoble / Méribel
Projet Actuel : CBNA

MessageSujet: Re: [script] Intersection entre deux lignes : booléen   Mer 20 Oct 2010 - 16:49

Plus mieux:
//line_intersect(x1,y1,x2,y2,x3,y3,x4,y4)
return (argument2-argument0)*(argument7-argument5)!=(argument6-argument4)*(argument3-argument1)

Si deux deux droites sont parallèle, leurs vecteurs directeurs sont colinéaire et je fait le test en mettant les divisions de l'autre côté de l'égalité pour ne pas a avoir a gérer les divisions par 0 (c'est en faite le déterminant).
Et puis un "!=" a la place d'un "==" pour avoir l'opposé du test

J'ai pas teste, mais normalement sa marche.

Par contre je ne vois pas bin l'utilité car c'est extrêmement rare que deux droites soient parallèle en prenant les droites comme 2 points.

_________________

D'autres jeux :
In The Cube
In the cube 2


Dernière édition par arthuro le Mer 20 Oct 2010 - 17:47, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8962
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [script] Intersection entre deux lignes : booléen   Mer 20 Oct 2010 - 17:21

ouai, en fait ma fonction retourne s´il y a intersection entre deux segment (et pas droites). Donc forcement c´est un peu plus long :p
D´ailleurs faudras que je la revoi, j´ai appris pas mal de choses depuis que je l´ai posté Surprised

_________________
                 
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
avatar

Messages : 1357
Localisation : Grenoble / Méribel
Projet Actuel : CBNA

MessageSujet: Re: [script] Intersection entre deux lignes : booléen   Mer 20 Oct 2010 - 17:46

A oui désolé, excuse moi.
Sa change tous alors

_________________

D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8962
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [script] Intersection entre deux lignes : booléen   Jeu 21 Oct 2010 - 12:16

y a pas de mal. J´aurais du mieux préciser la fonction de ce script.

_________________
                 
Revenir en haut Aller en bas
M@d_Doc
Modérateur
avatar

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: [script] Intersection entre deux lignes : booléen   Ven 22 Oct 2010 - 16:53

ce serait bien de retourner la position de collision, aussi ^^

_________________
Tous les icones de gm utilisables sur le cbna ICI
Revenir en haut Aller en bas
http://www.lecbna.org
Contenu sponsorisé




MessageSujet: Re: [script] Intersection entre deux lignes : booléen   

Revenir en haut Aller en bas
 
[script] Intersection entre deux lignes : booléen
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cette récurrente question du positionnement de l'entre-deux tours
» Visite entre deux milieux
» échange de fichier entre deux ordi
» Jumelage entre deux villes normandes
» Entre les lignes de Portia Da Costa

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: