Fausse 3d

panicq Messages postés 66 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 18 janvier 2010 - 20 oct. 2007 à 16:10
cs_pingouin84k Messages postés 68 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 9 janvier 2011 - 2 nov. 2007 à 12:53
Bonjour à tous,

J'aurais bien aimé faire un petit programme qui permet de tracer des ligne en vue x,y,z mais pas en 3d (sans module et sans code compliqué si possible) en fausse 3d. Je sais déja comment tracer une ligne en vb mais puis-je partir de la pour le faire?

Picture1.Line -(X,Y)

(Dans un MouseDown)

Ps: J'ai déja vu une souce qui fait cela mais je n'ai pas bien tout compris et il y avait des tas de modules etc...

Merci d'avance!

7 réponses

Arnal88 Messages postés 96 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 25 avril 2009
20 oct. 2007 à 20:47
Salut !

Alors soyons clair : laisse tomber..
En effet, il y a deux mots incompatibles dans la même phrase :
  "en 3D" et "sans code compliqué"...

Car en fausse 3D, tu auras des problèmes de projection sur un plan (le plan de l'écran), et si t'es pas bon en trigonométrie, passe ton chemin..

Tout dépend de ce que tu veux dessiner.. C'est plutôt des formes simples (cube, cylindres) ou plus complexe ?
0
cs_pingouin84k Messages postés 68 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 9 janvier 2011
29 oct. 2007 à 14:17
Je suis pas trop d'accord avec ce qui a était dis précédement.

Si tu veux pas faire de transformation 3d c très simple.
A la limite même les translation 3d sont simples (seul les rotations sont un peu plus compliqués - faut juste avoir les idées claires).

Si tu veux afficher un objet 3d a partir de ses coordonnées tu as 2 types d'affichages:
perspectives cavalière
prespective à point de fuite

Ton point 3D est definit par (X3D, Y3D, Z3D). Z étant la profondeur (direction perpendiculaire à ton écran).

la plus simple perspective cavalière:

Ton point afficher à ton ecran :
Pset(X3D,Y3D)
On suprime simplement la coordonnée Z3D.

maintenant la perspective à point de fuite :

Même méthode que précedement sauf qu'il faut diviser chaque coordonnées par Z (la profondeur)
Ca donne :
Pset(X3D/Z3D^distortion, Y3D/Z3D^distortion)
L'exposant distortion sert à reduire l'influence de la profondeur sur l'affichage. Quand distortion = 0 on est en perspective cavalière.

Quand tu fera tes premiers tests n'oublie pas que si tu vois rien s'afficher il faut verifier :
la propriété Autoredraw de ton afficheur
les coordonnées de ton points ne soit pas toute petite
l'affichage se fait à partir du centre de ton afficheur

C'était les derniers conseils qu'il parait bon de te donner (je suis déjà passer par là).

Si tu veux de l'aide (peut être sur les transforamtion des tes objets 3D, rotation et translation) suplémentaire n'hésite pas. Mon premier moteur graphique 3D(filaire), je l'ai fait sur Excel
0
panicq Messages postés 66 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 18 janvier 2010
29 oct. 2007 à 14:23
Merci mais mon pb c'est que en fait j'ai trois picturebox qui vont representer en fait les vues x,y,z Et ensuite je voudrait que quand on place ce point sur un des picturebox on le voit dans les diferentes vues.

PS:Au lieu de faire des points pouraije faire des croix????

Merci d'avance pour vos réponsse!
A+
0
panicq Messages postés 66 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 18 janvier 2010
29 oct. 2007 à 14:30
...Et apres si possible que quand on a fait deux points ils se relient automatiquement avec une ligne!

Mais je pensse que c'est tres dur mais bon! JE charche pas a faire un truc simple lol!

A+ et merci!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pingouin84k Messages postés 68 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 9 janvier 2011
29 oct. 2007 à 15:29
Pour l'histoire de picture box:

Disons que je place un point dans la vue X,Y. Faut savoir quelle valeur lui assigner à la valeur de Z, là, soit tu lui assigne une valeur par défaut, soit tu programme un algo qui attend que tu clique sur une des 2 autres pictures box d'à coté pour pouvoir calculer une valeur de Z.

Pour ce qui est de relier 2 points par une ligne :

Une ligne est une ligne en 3D ou en 2D. Donc si tu as les coordonnées des 2 points en 2D il te suffit de tracer une ligne entre les 2 points (ça devrait pas poser de problème).
0
panicq Messages postés 66 Date d'inscription mardi 14 novembre 2000 Statut Membre Dernière intervention 18 janvier 2010
29 oct. 2007 à 18:07
Pourtant si ca me pose un pb je sais pas trop comment faire en code, comment m'y prendre. Dsl

Merci d'avance!
0
cs_pingouin84k Messages postés 68 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 9 janvier 2011
2 nov. 2007 à 12:53
Le meilleur conseil que je puisse te donner, c'est de reflechir comme si toi tu étais à la place de l'ordi. Sachant ce que que tu veux faire essais de décomposer toutes les étapes de ton algo et surtout pense aux informations... Les informations sont à la base de ton prog. Si tes informations sont mal mise en forme ou s'il en manque, ton programme ne marchera pas comme tu veux.

Je supose que tu es débutant? Si c'est le cas, pour te rassurer, j'ai aussi commencer la prog en voulant faire un jeu (c'est ce que j'ai compris en lisant tes autres posts). Mais n'est pas d'illusion, à part si ton jeu est ultra simpliste (apparement c'est pas le cas), tu n'arriveras pas à tes fins.

Ca veux pas dire qu'il faut que tu arretes la prog bien au contraire. Il te faut juste apprendre, et apprendre en codant des petits algorithmes est le meilleur moyen (ca t'évite de t'y perdre)...

Bonne prog ;)
0
Rejoignez-nous