Eric9524
Messages postés1Date d'inscriptionmercredi 29 novembre 2006StatutMembreDernière intervention 1 janvier 2007 1 janv. 2007 à 18:40
Bonjour, c'est exactement ce que je cherchais, mais je suis tout de meme déçu (ca reste impressionnant, je ne saurai pas le refaire!) car les calculs ne m'ont pas l'air correct, quand on place la camera à x=y=z=0, plus rien ne répond... c'est pas bon signe. Et dans les faibles valeurs (positives), il y a des erreurs d'affichage manifeste! Je n'ai pas essayé les valeurs negative, mais tu sembles savoir qu'il y a deja des erreurs avec...
Je cherchais un exemple me permettant d'afficher des points et creer des lignes dans un repère 3D et pouvoir déplacer une camera et le déplacement de ton code me semble bizarre...
Voilà, si je me trompe, expliquez-moi ;) et si vous avez des sources qui semblent adaptées à mon besoin, n'hésitez pas non plus.
Merci et bonne année 2007
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 2 juil. 2006 à 11:42
Superbe! Bravo pour ce travail c'est exactement ce que je cherchait (3D sans DirectX ou autre). Si tu arrive à mettre de la lumiere et des ombres surtout met à jour ce serait vraiment interressant!
Bonne prog à tous
lexsty
Messages postés169Date d'inscriptionsamedi 10 décembre 2005StatutMembreDernière intervention18 juin 2017 1 mai 2006 à 07:26
Bonjour.
Bravo pour ce code très intéressant.
Simuler la 3D est une excellente application des maths et de la physique.
cs_nihaoma
Messages postés140Date d'inscriptionjeudi 2 mai 2002StatutMembreDernière intervention 2 février 2010 28 mars 2006 à 16:07
c'est vraiment un très bon code !
a vrai dire j'avais déja essayer de faire ce genre de chose, mais je ne suis jamais parvenu à obtenir un résultat aussi beau.
le code est simple (a quelques notions mathématiques pres), commenté et bon....
c'est une très bonne source, rien à dire...
cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 20152 1 mars 2006 à 21:26
bonne chance ^^
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 1 mars 2006 à 16:08
Bonjour,
Pour ma part avec mes source sur la 3d je voudrais faire un viewer d'objet et un petit modeleur. Un peu comme ce ke tu veux faire pourquoi ne pas mettre sa en comment?
A++
[Gally Home Corp]
bebelious
Messages postés9Date d'inscriptionmardi 28 novembre 2000StatutMembreDernière intervention23 mars 2010 1 mars 2006 à 15:27
Merci VBSorcier !
C'est pour ca que j'ai programmé ça, j'ai pas trouvé de source simple, alors j'en ai fait une, tout doucement, en cherchant des cours sur matrice, trigo, plan etc sur internet. Dans la mise à jour j'ai ajouté ton bout de code et divers truc (masquage des faces cachées etc..) mais je bloque sur la cam avec les valeur de Z négative... bref. Je bosse actuellement pour ajouter l'éclairage. Mon but final étant de faire un éditeur de d'objet 3D simple (points & faces & couleur) à la souris. il sera publié sur VBfrance bien sûr ! Voilà bonne Prog !!
VBSorcier
Messages postés102Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention29 avril 2007 27 févr. 2006 à 20:10
Superbe !!!
(je trouve pas particulièrement que c'est lent)
ca fait 5 jours que je cherche se genre de code, helas sur VBFrance
j'ai pas trouvé mon bonheur (ni ailleur d'ailleur), j'ai tenter directX et OpenGL mais aucune source ne m'a satisfait, en plus c'était pour une appli toute bete, donc pourquoi s'embetter avec DX et OGL alors que sans on fait mieu :p désolé les DirectXiens et les OpenGLiens
j'ai modifier un peu ton code pour lorsque l'on click sur "PIC" et que l'on bouge la souris cela 'rotatione' l'objet 3D selon X et Y
Dim XStart,YStart ' à declarer tout en haut
Private Sub PIC_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
CrX.Value = 1
CrY.Value = 1
XStart = X
YStart = Y
End If
End Sub
Private Sub PIC_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim m(16) As Double
Dim a As Double
a = PI / VIT.Value
If Button = 1 Then
For P = 1 To OBj.NbPoint
If CrX = 1 Then
CreerMatriceRotationY CDbl((X - XStart)/ 100), m
OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
End If
If CrY = 1 Then
CreerMatriceRotationX CDbl(((Y - YStart)/ 100), m
OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
End If
Next P
End If
Private Sub PIC_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button 1 Then CrX.Value 0
If Button 2 Then CrY.Value 0
End Sub
'pour la rotation de l'objet ***************************************************
Private Sub Calcul()
Dim m(16) As Double
Dim a As Double
a = PI / VIT.Value
For P = 1 To OBj.NbPoint
' If CrX = 1 Then
' CreerMatriceRotationX a, m
' OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
' End If
' If CrY = 1 Then
' CreerMatriceRotationY a, m
' OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
' End If
If CrZ = 1 Then
CreerMatriceRotationZ a, m
OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
End If
Next P
End Sub
j'ai bidouillé ca vite fait et je me suis servi de tes checkbox comme variable intermedaire lorsque l'on click, et desactivé dans la partie calcul le X et Y
sinon le faite que dans PIC_MouseMove, j'ai mis "CreerMatriceRotationY" pour X et "CreerMatriceRotationX" pour Y c'est normal, je trouve que c'est plus logique lorsque l'on bouge la souris
le mieu c'est de tester
re-bravo, aller 9/10, car peut pas mettre 9.5 et que le 10 n'est pas justifier
nan je plaisante, je met 10 car j'en avais besoin, sinon c'etait 9 :p
bonne continuation
a+
VBSorcier
bebelious
Messages postés9Date d'inscriptionmardi 28 novembre 2000StatutMembreDernière intervention23 mars 2010 22 févr. 2006 à 09:57
Merci pour les commentaires
C'est vrai c'est lent, mais j'ai pas fait ca pour la vitesse, c'est un exemple pour expliquer et comprendre le principe de la 3D, j'ai fait ca pour moi et j'ai pensé que sa pourrait aider d'autres. Mon but n'est pas de refaire DirectX et OpenGL lol. j'ai pas le temps de refaire une version tout de suite mais je prend note des remarques pour une future version ;) bonne prog.
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 21 févr. 2006 à 18:42
Pareille réaction qu'Alain Proviste. Beau travail !
Ce qui serait sympa, c'est d'avoir un disque en 3D.
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 21 févr. 2006 à 18:30
Bonjour,
C'est pas trop mal, mais quand même assez lent avec des objets simple. Va falloir optimiser tout sa ;-), mais tres bon debut.
Si tu as le temps de voir mes sources il y a pas mal de trucs sur la 3D, mais les matrices c'est pas trop mon truc alors si tu veux me donner un coup de main sur cette partie...
Merci d'avance,
[Gally Home Corp]
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 21 févr. 2006 à 18:16
Waaaa drolement cool
cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 20152 21 févr. 2006 à 05:23
je suis toujours pantois face à ce genre de sources...
quel courage :)
1 janv. 2007 à 18:40
Je cherchais un exemple me permettant d'afficher des points et creer des lignes dans un repère 3D et pouvoir déplacer une camera et le déplacement de ton code me semble bizarre...
Voilà, si je me trompe, expliquez-moi ;) et si vous avez des sources qui semblent adaptées à mon besoin, n'hésitez pas non plus.
Merci et bonne année 2007
2 juil. 2006 à 11:42
Bonne prog à tous
1 mai 2006 à 07:26
Bravo pour ce code très intéressant.
Simuler la 3D est une excellente application des maths et de la physique.
28 mars 2006 à 16:07
a vrai dire j'avais déja essayer de faire ce genre de chose, mais je ne suis jamais parvenu à obtenir un résultat aussi beau.
le code est simple (a quelques notions mathématiques pres), commenté et bon....
c'est une très bonne source, rien à dire...
1 mars 2006 à 21:26
1 mars 2006 à 16:08
Pour ma part avec mes source sur la 3d je voudrais faire un viewer d'objet et un petit modeleur. Un peu comme ce ke tu veux faire pourquoi ne pas mettre sa en comment?
A++
[Gally Home Corp]
1 mars 2006 à 15:27
C'est pour ca que j'ai programmé ça, j'ai pas trouvé de source simple, alors j'en ai fait une, tout doucement, en cherchant des cours sur matrice, trigo, plan etc sur internet. Dans la mise à jour j'ai ajouté ton bout de code et divers truc (masquage des faces cachées etc..) mais je bloque sur la cam avec les valeur de Z négative... bref. Je bosse actuellement pour ajouter l'éclairage. Mon but final étant de faire un éditeur de d'objet 3D simple (points & faces & couleur) à la souris. il sera publié sur VBfrance bien sûr ! Voilà bonne Prog !!
27 févr. 2006 à 20:10
(je trouve pas particulièrement que c'est lent)
ca fait 5 jours que je cherche se genre de code, helas sur VBFrance
j'ai pas trouvé mon bonheur (ni ailleur d'ailleur), j'ai tenter directX et OpenGL mais aucune source ne m'a satisfait, en plus c'était pour une appli toute bete, donc pourquoi s'embetter avec DX et OGL alors que sans on fait mieu :p désolé les DirectXiens et les OpenGLiens
j'ai modifier un peu ton code pour lorsque l'on click sur "PIC" et que l'on bouge la souris cela 'rotatione' l'objet 3D selon X et Y
Dim XStart,YStart ' à declarer tout en haut
Private Sub PIC_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
CrX.Value = 1
CrY.Value = 1
XStart = X
YStart = Y
End If
End Sub
Private Sub PIC_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim m(16) As Double
Dim a As Double
a = PI / VIT.Value
If Button = 1 Then
For P = 1 To OBj.NbPoint
If CrX = 1 Then
CreerMatriceRotationY CDbl((X - XStart)/ 100), m
OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
End If
If CrY = 1 Then
CreerMatriceRotationX CDbl(((Y - YStart)/ 100), m
OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
End If
Next P
End If
Afficher
COORD = "X:" & Round(Cam.Position.X, 2) & " Y:" & Round(Cam.Position.Y, 2) & " Z:" & Round(Cam.Position.Z, 2)
XStart = X
YStart = Y
End Sub
Private Sub PIC_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button 1 Then CrX.Value 0
If Button 2 Then CrY.Value 0
End Sub
'pour la rotation de l'objet ***************************************************
Private Sub Calcul()
Dim m(16) As Double
Dim a As Double
a = PI / VIT.Value
For P = 1 To OBj.NbPoint
' If CrX = 1 Then
' CreerMatriceRotationX a, m
' OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
' End If
' If CrY = 1 Then
' CreerMatriceRotationY a, m
' OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
' End If
If CrZ = 1 Then
CreerMatriceRotationZ a, m
OBj.Point(P) = TransformePoint3D(OBj.Point(P), m)
End If
Next P
End Sub
j'ai bidouillé ca vite fait et je me suis servi de tes checkbox comme variable intermedaire lorsque l'on click, et desactivé dans la partie calcul le X et Y
sinon le faite que dans PIC_MouseMove, j'ai mis "CreerMatriceRotationY" pour X et "CreerMatriceRotationX" pour Y c'est normal, je trouve que c'est plus logique lorsque l'on bouge la souris
le mieu c'est de tester
re-bravo, aller 9/10, car peut pas mettre 9.5 et que le 10 n'est pas justifier
nan je plaisante, je met 10 car j'en avais besoin, sinon c'etait 9 :p
bonne continuation
a+
VBSorcier
22 févr. 2006 à 09:57
C'est vrai c'est lent, mais j'ai pas fait ca pour la vitesse, c'est un exemple pour expliquer et comprendre le principe de la 3D, j'ai fait ca pour moi et j'ai pensé que sa pourrait aider d'autres. Mon but n'est pas de refaire DirectX et OpenGL lol. j'ai pas le temps de refaire une version tout de suite mais je prend note des remarques pour une future version ;) bonne prog.
21 févr. 2006 à 18:42
Ce qui serait sympa, c'est d'avoir un disque en 3D.
21 févr. 2006 à 18:30
C'est pas trop mal, mais quand même assez lent avec des objets simple. Va falloir optimiser tout sa ;-), mais tres bon debut.
Si tu as le temps de voir mes sources il y a pas mal de trucs sur la 3D, mais les matrices c'est pas trop mon truc alors si tu veux me donner un coup de main sur cette partie...
Merci d'avance,
[Gally Home Corp]
21 févr. 2006 à 18:16
21 févr. 2006 à 05:23
quel courage :)