ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
21 mai 2005 à 18:14
teq4
Messages postés2Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention30 mai 2009
-
30 mai 2009 à 16:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
teq4
Messages postés2Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention30 mai 2009 30 mai 2009 à 16:18
merci ;) simple, et qui marche :d
EvildarkEurope
Messages postés51Date d'inscriptiondimanche 11 décembre 2005StatutMembreDernière intervention11 octobre 2014 26 févr. 2008 à 20:36
Clair et simple, merci :P
Choumoumou
Messages postés162Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention17 novembre 2010 11 déc. 2005 à 00:01
Merci beaucoup ! ce code va énormément m'aider pour mon jeu de shoot (pour faire tourner les persos).
10/10 ! Pourkoi noter moins ? Ce code est éxactement ce qu'indique le titre :D !
@+ !
Thanatoster
Messages postés14Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention20 janvier 2006 8 juin 2005 à 17:58
salut à vous tous, je voudrais savoir si il est possible de changer la couleur des points et des lignes et surtout savoir comment... Mais aussi s'il est possible de lui attribuer une zone précise parce que lorsque je resize ma form la taille du cube change aussi, ce que je voudrais c'est l'insérer dans un autre programme genre en haut à gauche en pas-trop-grand.
voila, merci déjà pour ce petit cube qui donne super bien.
cs_aerith
Messages postés54Date d'inscriptionlundi 17 mars 2003StatutMembreDernière intervention12 mars 2006 25 mai 2005 à 16:50
mouai, bon ok, je ferais un tuto dans un grand moment de bontée (mais la demo sera en C :p)
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 23 mai 2005 à 17:37
Il y a une petite distortion sur le cube avec la matrice d'origine, elle n'est pas tres visible mais par contre c'est completement faux quand tu trace dans un autre plan que x,z : le cube est applati. Pour la 3D "tout VB", j'y bosse...
A+
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 22 mai 2005 à 17:33
Non, ni en DX ni en OpGL, en VB brut ;O)
Pour ce qui est du stockage du sin et du cos, non, pas du tout car la fonction te calcule ça selon le type de ta variable. Autrement dit, le max c'est Double!!! Or, justement, en 3D on a pas besoin d'une précision au delà de 4 décimale (et encore, c'est déjà pas mal!). On parles d'ailleurs de calcul à virgule fixe par opposition aux calculs à virgules flottantes. D'ailleurs, dans le temps, on utilisait meme pas de fonction sin et cos qui étaient trop lentent mais des matrices à 2 décimales (x,xx). Autrement dit, on précalculaient les cos et sin pour toutes les valeurs d'angle possibles car un accès à une entrée de matrice est nettement plus rapide qu'un calcul trigo de sin*cos!!! Donc, il vaut mieux stocker les valeurs dans des variable (quitte, donc, à utiliser des double au lieu des Long plus rapides!).
Enjoy
cs_Stephane
Messages postés550Date d'inscriptionvendredi 5 janvier 2001StatutMembreDernière intervention23 septembre 2006 22 mai 2005 à 16:52
flashy joe
je suis bien incapable (niveau de math) de te dire si j'ai faux ou pas, puisque j'ai trouvé cette matrice sur le net, et ma fois le résultat obtenue (le cube) est bien rendu.
scsami :
précalculé le cos et sin, je pense c'est pas uen bonne idée, en effet, pour stocker le cos sur -Pi/Pi, il faudrait stocker des milliers de valeurs (pour avoir la précision, je pense donc que ca vaut pas le coup.
"Moi, ce que je cherche déséspérément depuis un bout de temps c'est qu'une bonne âme m'explique comment implémenter un système de caméra..."
en utilisant opengl ou DX ?
je vais essayer de faire un tuto complet sur opengl 3D ( et 2d !! ca manque cruellement), mais il va d'abord falloir que je trouve... le temps :(
++
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 22 mai 2005 à 16:09
Cependant, dans ce cas, il serait bon de précalculer les sinus et cosinus et de les mettre dans une variable afin d'éviter la redondance des calculs!
Ceci dit, il serait bien d'expliquer ce calcul aux membres... Flachy n'est pas très clair (pour ceux qui n'ont pas certaines bases!!!). En fait, je dirais même qu'il faudrait faire un petit tuto histoire d'éviter la récurrence de ces sources.
Stephane, le moteur de CS est un peu foireux au niveau de la recherche des sources... Le mieux est d'utiliser Google avec "vbfrance" + taRecherche!
Moi, ce que je cherche déséspérément depuis un bout de temps c'est qu'une bonne âme m'explique comment implémenter un système de caméra... Je récidive donc mon appele aux hard-3D-codeurs ;-) de tout VBF afin de nous pondre un pur tuto pour newbies en commençant par le début à savoir, toutes les manières d'émuler la 3ème dimension...
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 22 mai 2005 à 15:56
Salut,
il me semble que ta matrice de rotation est fausse : pour une rotation autour de x puis de y puis de z, la matrice de rotation est le produit des matrice mx, my et mz avec :
1 0 0
mx = 0 CX SX
0 -SX CX
CY 0 SY
my = 0 1 0
-SY 0 CY
CZ SZ 0
mz = -SZ CZ 0
0 0 1
CX représente le cosinus de l'angle de rotation autour de x, SX le sinus etc...
La multiplication donne donc :
Par ailleur, il est facile de vérifier si une fonction de rotation est juste, si tu utilise les coordonnées (X,y), (x,z) ou (y,z) pour ton tracé 2D, la géométrie doit être affichée avec un rotation de Pi/2.
Bonne continuation...
cs_Stephane
Messages postés550Date d'inscriptionvendredi 5 janvier 2001StatutMembreDernière intervention23 septembre 2006 22 mai 2005 à 00:14
ok, jvais faire un fichier qui explique
mais par contre j'avais rien trouvé en recherchant, ou alors je chercher pas au bon mot...
a+
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 21 mai 2005 à 18:14
Cu déjà vu... Mais c'est quand même bien!
Cependant, ça manque un peu d'explications je trouve!!!
Livre-nous un .txt avec histoire de bien nous expliquer comment cette fonction opère afin de pouvoir la modifier à volonté.
Enfin, moi je dis ça pour ça puisse aider les débutants ;-)
30 mai 2009 à 16:18
26 févr. 2008 à 20:36
11 déc. 2005 à 00:01
10/10 ! Pourkoi noter moins ? Ce code est éxactement ce qu'indique le titre :D !
@+ !
8 juin 2005 à 17:58
voila, merci déjà pour ce petit cube qui donne super bien.
25 mai 2005 à 16:50
23 mai 2005 à 17:37
A+
22 mai 2005 à 17:33
Pour ce qui est du stockage du sin et du cos, non, pas du tout car la fonction te calcule ça selon le type de ta variable. Autrement dit, le max c'est Double!!! Or, justement, en 3D on a pas besoin d'une précision au delà de 4 décimale (et encore, c'est déjà pas mal!). On parles d'ailleurs de calcul à virgule fixe par opposition aux calculs à virgules flottantes. D'ailleurs, dans le temps, on utilisait meme pas de fonction sin et cos qui étaient trop lentent mais des matrices à 2 décimales (x,xx). Autrement dit, on précalculaient les cos et sin pour toutes les valeurs d'angle possibles car un accès à une entrée de matrice est nettement plus rapide qu'un calcul trigo de sin*cos!!! Donc, il vaut mieux stocker les valeurs dans des variable (quitte, donc, à utiliser des double au lieu des Long plus rapides!).
Enjoy
22 mai 2005 à 16:52
je suis bien incapable (niveau de math) de te dire si j'ai faux ou pas, puisque j'ai trouvé cette matrice sur le net, et ma fois le résultat obtenue (le cube) est bien rendu.
scsami :
précalculé le cos et sin, je pense c'est pas uen bonne idée, en effet, pour stocker le cos sur -Pi/Pi, il faudrait stocker des milliers de valeurs (pour avoir la précision, je pense donc que ca vaut pas le coup.
"Moi, ce que je cherche déséspérément depuis un bout de temps c'est qu'une bonne âme m'explique comment implémenter un système de caméra..."
en utilisant opengl ou DX ?
je vais essayer de faire un tuto complet sur opengl 3D ( et 2d !! ca manque cruellement), mais il va d'abord falloir que je trouve... le temps :(
++
22 mai 2005 à 16:09
Ceci dit, il serait bien d'expliquer ce calcul aux membres... Flachy n'est pas très clair (pour ceux qui n'ont pas certaines bases!!!). En fait, je dirais même qu'il faudrait faire un petit tuto histoire d'éviter la récurrence de ces sources.
Stephane, le moteur de CS est un peu foireux au niveau de la recherche des sources... Le mieux est d'utiliser Google avec "vbfrance" + taRecherche!
Moi, ce que je cherche déséspérément depuis un bout de temps c'est qu'une bonne âme m'explique comment implémenter un système de caméra... Je récidive donc mon appele aux hard-3D-codeurs ;-) de tout VBF afin de nous pondre un pur tuto pour newbies en commençant par le début à savoir, toutes les manières d'émuler la 3ème dimension...
22 mai 2005 à 15:56
il me semble que ta matrice de rotation est fausse : pour une rotation autour de x puis de y puis de z, la matrice de rotation est le produit des matrice mx, my et mz avec :
1 0 0
mx = 0 CX SX
0 -SX CX
CY 0 SY
my = 0 1 0
-SY 0 CY
CZ SZ 0
mz = -SZ CZ 0
0 0 1
CX représente le cosinus de l'angle de rotation autour de x, SX le sinus etc...
La multiplication donne donc :
CY.CZ , Cy.SZ , SY
mr = -Sx.SY.CZ - CX.SZ , -SX.SY.SZ + CX.CZ , SX.CY
-Cx.SY.CZ + SX.CZ , -CX.SY.SZ - SX.CZ , CX.CY
Il me semble donc que ta fonction doit être réecrite de cette façon :
Private Function rotate(Point As PointType, R As PointType) As PointType
rotate.X = Point.X * Cos(R.Y) * Cos(R.Z) + _
Point.Y * Cos(R.Y) * Sin(R.Z) + _
Point.Z * Sin(R.Y)
rotate.Y = Point.X * (-Sin(R.X) * Sin(R.Y) * Cos(R.Z) - Cos(R.X) * Sin(R.Z)) + _
Point.Y * (-Sin(R.X) * Sin(R.Y) * Sin(R.Z) + Cos(R.X) * Cos(R.Z)) + _
Point.Z * Sin(R.X) * Cos(R.Y)
rotate.Z = Point.X * (-Cos(R.X) * Sin(R.Y) * Cos(R.Z) + Sin(R.X) * Sin(R.Z)) + _
Point.Y * (-Cos(R.X) * Sin(R.Y) * Sin(R.Z) - Sin(R.X) * Cos(R.Z)) + _
Point.Z * Cos(R.X) * Cos(R.Y)
End Function
Par ailleur, il est facile de vérifier si une fonction de rotation est juste, si tu utilise les coordonnées (X,y), (x,z) ou (y,z) pour ton tracé 2D, la géométrie doit être affichée avec un rotation de Pi/2.
Bonne continuation...
22 mai 2005 à 00:14
mais par contre j'avais rien trouvé en recherchant, ou alors je chercher pas au bon mot...
a+
21 mai 2005 à 18:14
Cependant, ça manque un peu d'explications je trouve!!!
Livre-nous un .txt avec histoire de bien nous expliquer comment cette fonction opère afin de pouvoir la modifier à volonté.
Enfin, moi je dis ça pour ça puisse aider les débutants ;-)