Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1143 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  [Algo][C++] Mini Raytracing

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Algo][C++] Mini Raytracing

n°1202910
xterminhat​e
Si vis pacem, para bellum.
Posté le 20-09-2005 à 08:51:51  profilanswer
 

Pour la programmation d'un jeu, j'ai besoin d'un algo de raytracing ultra simplifié (c'est pour ajouter un effet de brouillard de guerre un peu sioux).
 
Voila mon probleme (je travaille dans un plan 2D):
 
Soit un point A la source, un point B la destination, un point C un éventuel obstacle. Comment calculer la distance entre le point C et la droite AB connaissant toutes les coordonnées des points ?
 
Cordialement,
Xterm-in'Hate.
 
(PS.: pour l'anecdote, j'ai obtenu un diplome BAC+6 en sciences appliquées il n'y a pas si longtemps....vous pouvez rigoler, c'est pathétique comme situation!)

mood
Publicité
Posté le 20-09-2005 à 08:51:51  profilanswer
 

n°1202932
LeGreg
Posté le 20-09-2005 à 09:33:54  profilanswer
 

En supposant que tu aies l'équation de droite  
a * x + b * y + c = 0 (je suppose que tu sais l'obtenir sinon on y reviendra)
le vecteur de coordonnées (a,b)  
détermine un vecteur normal à ta droite.
Tu determines sa norme n = sqrt(a *a + b * b)
 
en fait la distance du point C à la droite c'est simplement :
d(C, AB) = a / n * xC + b / n * xC + c / n

n°1202936
xterminhat​e
Si vis pacem, para bellum.
Posté le 20-09-2005 à 09:38:14  profilanswer
 

Je ne dispose que de A(ax,ay), B(bx,by) et biensur C(cx,cy).

n°1202945
xterminhat​e
Si vis pacem, para bellum.
Posté le 20-09-2005 à 09:41:43  profilanswer
 

En utilisant le produit vectoriel, je sors de mon chapeau, ceci :
 
d(C,AB) = | vecteurAC ^ vecteurAB | / | vecteurAB |


Message édité par xterminhate le 20-09-2005 à 09:42:00
n°1202956
xterminhat​e
Si vis pacem, para bellum.
Posté le 20-09-2005 à 09:46:32  profilanswer
 

En développant, j'obtiens ca :
 
d(C,AB) = | (cx-ax)(by-ay)-(cy-ay)(bx-ax) | / racine[ (bx-ax)² + (by-ay)² ]
 
Ca parait correct ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  [Algo][C++] Mini Raytracing

 

Sujets relatifs
éditeur en javascript a placer sur un site( mini word)Retrouver l'algo de compression d'un son
[algo java] Calcul de jour ouvrables (dates)[rech] programmateur qui s'ennuie pour mini prog
Algo BrutusCréer un mini formulaire qui listerait automatiquement !
algo RSA en CAlgo le plus rapide pour trouver une répétition ?
[Algo]Algo d'un programme de messagerie ?Algo de compression de voie
Plus de sujets relatifs à : [Algo][C++] Mini Raytracing


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR