TEST 3D AVEC MATRICE ET API POLYGON

cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 - 21 févr. 2006 à 05:23
Eric9524 Messages postés 1 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 1 janvier 2007 - 1 janv. 2007 à 18:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36149-test-3d-avec-matrice-et-api-polygon

Eric9524 Messages postés 1 Date d'inscription mercredi 29 novembre 2006 Statut Membre Derniè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és 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 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és 169 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 18 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és 140 Date d'inscription jeudi 2 mai 2002 Statut Membre Derniè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és 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
1 mars 2006 à 21:26
bonne chance ^^
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
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és 9 Date d'inscription mardi 28 novembre 2000 Statut Membre Dernière intervention 23 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és 102 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 29 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

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
bebelious Messages postés 9 Date d'inscription mardi 28 novembre 2000 Statut Membre Dernière intervention 23 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és 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
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és 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
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és 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
21 févr. 2006 à 18:16
Waaaa drolement cool
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
21 févr. 2006 à 05:23
je suis toujours pantois face à ce genre de sources...
quel courage :)
Rejoignez-nous