Centre de Formation Flash - Forums Adobe Flash: Cacluler l'intersection de deux courbe de Bezier( quadratique) - Centre de Formation Flash - Forums Adobe Flash

Voir le contenu

Page 1 sur 1
  • Vous ne pouvez pas créer de sujet
  • Vous ne pouvez pas répondre au sujet

Cacluler l'intersection de deux courbe de Bezier( quadratique)

#1 Guest_Flaxe_*

  • Groupe : Guests

Posté 11 February 2010 - 07:21 PM

Bonjour a tous,

Je cherche le moyen de calculer l'intersection entre deux courbes de Bézier quadratique en ActionScript.

Auriez-vous des piste, lien, sources ?

merci

Ce message a été modifié par Flaxe : 11 February 2010 - 07:21 PM

0

#2 Utilisateur non-connecté   tlecoz

  • ceinture d'astéroide
  • Groupe : Modérateurs
  • Messages : 2294
  • Inscrit : 14-December 04
  • Gender:Male
  • Location:Paris
  • Interests:fabriquer des bidules avec des machins
  • Version logiciel:Flash 8-9/AIR
  • Compétences: Développeur Actionscript 3.

Posté 12 February 2010 - 12:58 AM

Hello !

La solution la plus simple (et l'unique que je connaisse d'ailleur) passe par l'approximation.
Utilise les barycentre pour décomposer chaque courbe en une suite de segments (genre 100).
Ensuite il suffit de boucler sur tout les segments d'une courbe et de vérifier l'intersection avec les segments de l'autre courbes.

Bon courage !
Si tu veux eclairer quelqu'un, ne l'éblouis pas.
------------------------------------------------
Mon blog : http://www.machinbidules.com
0

#3 Guest_Flaxe_*

  • Groupe : Guests

Posté 12 February 2010 - 10:28 PM

Yop

Finalement c'est tout bête ^^

Je sais qu'une courbe quadratique de Bézier est de la forme :
A posté une image
Où les Pi sont les points de contrôles.


Si je veux l'intersection deux deux courbe, je dit : B1( t) = B2( t), où chaque Bi( t) représente une courbe de Bézier t € [0, 1]
D'où un polynôme du second degré.
B( t) = a.t² + b.t + c 


Il suffit de calculer les racine évidente de B( t) Comme au colège :texas:

Enjoy it ;-)
0

#4 Guest_Flaxe_*

  • Groupe : Guests

Posté 13 February 2010 - 12:12 AM

Yup,

j'en arrive a calculer l'intersection de deux courbe de Bézier cubic, soit :

A posté une image

la j'fait moins mon malin :mrgreen: finalement, c'est plus si bête que ca^^

Pour résoudre une équation du troisième ou du quatrième degré, on peut tenter...

A ce niveau je pense que la méthode de tlecoz serrai plus rapide


Voila, Hop, c'est archivé.
0

#5 Utilisateur non-connecté   tlecoz

  • ceinture d'astéroide
  • Groupe : Modérateurs
  • Messages : 2294
  • Inscrit : 14-December 04
  • Gender:Male
  • Location:Paris
  • Interests:fabriquer des bidules avec des machins
  • Version logiciel:Flash 8-9/AIR
  • Compétences: Développeur Actionscript 3.

Posté 13 February 2010 - 02:52 PM

Maintenant que j'y pense, il existe une autre méthode ultra simple :smile:


1) créé un Sprite
2) dessine ta premiere courbe avec une epaisseur de 1-2 px, en noir.
3) dessine ta deuxieme courbe avec une epaisseur de 1-2 px, en blanc, avec un alpha de 0.5.
4)Draw ton sprite dans un bitmapData disposant de transparence, ayant en couleur par defaut 0;
5) fais un getColorBoundRect (ou un truc du genre) sur ton bitmapdata en cherchant les pixels gris.


Si le rect que l'on te sors fait 1px de coté, il n'y a eu qu'un seul point de collision correspondant au coordonnée du rectangle.

si le rect est plus grand, c'est qu'il contient plusieur pixel gris, donc plusieurs points de collisions.
Je te laisse te débrouiller pour les retrouver ;-)

Bon courage !
Si tu veux eclairer quelqu'un, ne l'éblouis pas.
------------------------------------------------
Mon blog : http://www.machinbidules.com
0

Page 1 sur 1
  • Vous ne pouvez pas créer de sujet
  • Vous ne pouvez pas répondre au sujet

1 utilisateur(s) dans ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)