CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide Math Environement 3D

tigerman
tigerman
Niveau 10
24 juin 2005 à 23:28:56

À la base je suis étudiant en Informatique...et j´ai pas encore complété tous mes cours de Math...j´ai besoin d´aide pour des calculs dans un environement à 3 axes

pour le moment j´ai vraiment besoin d´une formule pour calculer la distance entre la " camera"(situer a 0,0,400) et un point...mais pas n´importequel point

il me faut calculer le point au centre d´un polygone dont le nombre de coté peut varier

actuellement...pour la distance entre 2 points..j´utilise
http://perso.wanadoo.fr/maxence.delannoy/eq00.gif

pour le point au centre j´ai trouver quelque chose qui semblait répondre à mes besoins...en théorie...le barycentre
http://fr.wikipedia.org/math/3532cd1a8a0ce1ee119e207ecf085815.png
mais en pratique ca fonctionne pas toujours comme prévu

le but de calculer la distance entre la camera et le polygone(le point au centre en fait...) c´est de les classer en ordre du plus loin au plus proche pour consrtuire l´ordre d´affichage...si vous avez une meilleur idée pour calculé la distance entre un point et un polygone...dite le moi..

les données disponible sont les coordonnés x,y,z de tous les points de chaques polygones et la coordonnée x,y,z ( 0,0,400) de " l´observateur"

Merci

Yves
Yves
Niveau 7
24 juin 2005 à 23:40:39

En gros c´est du vecteur un peu complexe que tu demande?

tigerman
tigerman
Niveau 10
25 juin 2005 à 04:19:40

n´importequoi qui peut m´aidé a classé les polygones selon leurs distace avec l´observateur...et cela a partir des coordonnés x,y,z de tous les points de chaques polygones et la coordonnée x,y,z(0,0,400) de " l´observateur"

Yves
Yves
Niveau 7
25 juin 2005 à 07:50:26

J´halluçine le gars trop pas polis..
T´est pas obligé de le dire comme ça..

Yves
Yves
Niveau 7
25 juin 2005 à 07:50:52

J´halluçine le gars trop pas polis..
T´est pas obligé de le dire comme ça..

jejej
jejej
Niveau 9
25 juin 2005 à 11:21:29

Mais nan , c pas ça . .. il demande n´importe quoi qui pourrait l´aider , c pas ta reponse qui est ´n´importe quoi´ . ..

Yves
Yves
Niveau 7
25 juin 2005 à 12:06:40

Je suis confus :(

dnob700
dnob700
Niveau 10
25 juin 2005 à 15:56:31

pourquoi ça ne marche pas ?

Bien sur, ça dépend ce que tu appelle " centre" d´un polygone, mais théoriquement le barycentre, en ajustant les formules pour le bon nombre de points ( et en simplifiant) :

Si tu à un polygone à n coté et n sommets S1, S2, . .., Sn tel que le point Si ais pour coordonnées ( Xi,Yi,Zi).
Alors le centre du polygone a pour coordonnées ( X,Y,Z) où :
X=(X1 + X2 + . .. + Xn)/n et
Y=(Y1 + Y2 + . .. + Yn)/n
Z=(Z1 + Z2 + . .. + Zn)/n

et si la caméra à pour coordonnées ( X0,Y0,Z0) alors pour la distance tu calcule :
d=(X-X0)^2+(Y-Y0)^2+(Z-Z0)^2

et pas besoin de racine carré ( c´est des calculs inutiles) pour classer du plus proche au plus lointain, l´ordre est déjà le bon.

Yves
Yves
Niveau 7
25 juin 2005 à 16:10:29

Au passage,c´est sûrement le sujet le plus sérieux du site :p

Archange-net
Archange-net
Niveau 4
25 juin 2005 à 19:42:30

Oui, attribuer des coefficients non égaux à chacune des coordonnées des différents points tel qu´on peut le voir ici
http://fr.wikipedia.org/math/3532cd1a8a0ce1ee119e207ecf085815.png
donne en général la position de barycentres quelconques, pas celle de l´isobarycentre qui est ce qu´apparemment vous appelez le centre du polygone si j´ai bien suivi.

LGV
LGV
Niveau 28
25 juin 2005 à 22:23:56

vu que tu fais un tri, compare les distances sans les racines carrées. Au passage, on est en dimension finie, les normes sont équivalentes donc tu peux utiliser n´importe quelle autre norme plus rapide à calculer que l´euclidienne.
Pour finir, si tu veux les vraies distances, mais rapidement et de manière approchées, un article sur gamedev présente une combinaison linéaire de fonctions simples, qui donne de tres bon résultats.
Ah oui, et le barycentre DOIT marcher.

dnob700
dnob700
Niveau 10
26 juin 2005 à 00:56:38

enfin, le fait que toutes les normes soit équivalente n´est pas équivalent au fait qu´on obtienne le même résultat avec toutes les norme.

une norme qui ressemblerait à :
max(max(|x-x0|,|y-y0|),|z-z0|)
est bien une norme mais ne donnera pas du tout le même résultat qu´une norme euclidienne.

tigerman
tigerman
Niveau 10
26 juin 2005 à 03:00:23

" "Yves
Posté le 25 juin 2005 à 07:50:26
J´halluçine le gars trop pas polis..
T´est pas obligé de le dire comme ça..""

j´ai du être mal interprété

" jejej
Posté le 25 juin 2005 à 11:21:29
Mais nan , c pas ça . . . il demande n´importe quoi qui pourrait l´aider , c pas ta reponse qui est ´n´importe quoi´ . . .""

c´Est ca..il maquait une espace . ..c´est mon erreur

" "LGV
Posté le 25 juin 2005 à 22:23:56
Ah oui, et le barycentre DOIT marcher.""

ben quand je fais afficher toute les donnée de debug...ils sont classé dans le bon ordre...donc oui le barycentre fonctionne..mais il y en a toujours un tière qui ne s´affiche pas bien rendu a l´étape de les dessinés

" "Yves
Posté le 25 juin 2005 à 16:10:29
Au passage,c´est sûrement le sujet le plus sérieux du site :p""

je suis pas sûr de comprendre si c´est une joke ou si c´est sérieu...

tigerman
tigerman
Niveau 10
26 juin 2005 à 03:12:54

je vais revoir la portion de code dessine les polygone..parcqu´après vérification...le barycentre est bien un point fiable pour mesuré la distance entre l´observateur et le polygone...mais au moment de dessiner les fameux polygone...certain sont soit absent...soit cacher par des polygones qui ne respectent pas leurs " priorité"

tigerman
tigerman
Niveau 10
26 juin 2005 à 03:18:13

" "et pas besoin de racine carré ( c´est des calculs inutiles) pour classer du plus proche au plus lointain, l´ordre est déjà le bon.""

c´est vrai...merci..ca aide a optimiser

tigerman
tigerman
Niveau 10
26 juin 2005 à 04:27:33

ha non...c´étais trop simple

les donnés de debug étais lu au milieu du code...pour ca j´avais réécrit la portion du code qui calcul le barycentre...mais pour l´affichage...le barycentre étais recalculer avec la portion de code d´origine..qui contenais une toute petite erreur

les donner de débug étais OK mais les donné pour l´affichage incorect...d´ou le mauvais ordre de classement et le mauvais affichage :( morale : quand on fait la lecture de variable pour du débug...faut le faire au bon endroit looool

Donc pour le moment tout marche..mais éventuellement je reisque d´avoir besoin encore d´aide....mon code commence a peine a pouvoir être nommé " moteur 3D" alors je vais continuer a lui ajouté des fonctionnalités...

LGV
LGV
Niveau 28
27 juin 2005 à 01:46:04

dnob700 : le fait qu´elles soient équivalentes ( on parle de normes..) permet de dire qu´elles définissent les meme notions d´inégalité ; si on a |x|_1 < |y|_1 on doit avoir |x|_2 < |y|_2 . Donc à partir du moment où on fait des comparaison dans le but de trier, autant faire le moins de calculs possibles.

dnob700
dnob700
Niveau 10
27 juin 2005 à 02:26:24

tu vois, j´ai répondu comme ça dans l´un des dernier devoir que j´ai fait cette année ( faut dire que le prof avait oublier de nous faire le cour dessus).

bon, donc en fait 2 normes sont équivalentes ( et c´est bien ça que l´on entend quand on dit qu´en dimension finit toutes les normes sont équivalente) veut dire :

deux normes N1 et N2 de I dans R sont dites équivalentes si et seulement si il existe deux réel a1 et a2 tel que pour tout x dans I a1*N1(x) < = N2(x) < = a2*N1(x)

ce qui ne revient pas au même.
Encore une fois, regarde avec l´exemple de norme que j´ai donné dans mon précédent messages, on " voit" bien que cette norme n´est pas équivalente selon ta définition à la norme canonique.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment