[metapost] Questions sur 3d
Jean-Michel Boucart <[email protected]> Thu, 23 Jun 2005 18:23:42 +0200
| Newsgroups | gmane.comp.tex.metafont |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------030005000000050908030307
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by nef2.ens.fr id j5NGNw0J085076
Bonjour,
Je m'initie au package 3d. J'ai du mal bien mais je pers=E9v=E8re car le=20
package m'int=E9resse vraiment. Alors voici quelques questions auquelles=20
peut-=EAtre quelqu'un r=E9pondra.
1) En dehors des docs qui sont sur CTAN, y a-t-il d'autres explications=20
? J'ai par exemple eu bien du mal =E0 trouver dans la doc, la mani=E8re d=
e=20
tracer une droite en pointill=E9s. J'ai fini par trouver en consultant de=
s=20
exemples mais il y a bien d'autres questions que je me pose pae exemple=20
sur la notion de face.
2) Quel est le moyen, en perspective cavali=E8re, de fixer le plan de=20
projection ?
3) Dans le fichier joint, j'ai une erreur que je n'arrive pas =E0 lever=20
malgr=E9 des heures de recherche : je souhaite d=E9terminer sur la droit=
e =20
(1,16) l'intersection visuelle avec la droite (14,6). L'abscisse =20
calcul=E9e (xval) de cette intersection me donne un nombre n=E9gatif, ce=
=20
qui est pratiquement impossible. Or, cette information d'abscisse m'est=20
indispensable pour d=E9terminer des trac=E9s de pointill=E9s.
--------------030005000000050908030307
Content-Type: text/plain;
name="repere.mp"
Content-Disposition: inline;
filename="repere.mp"
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by nef2.ens.fr id j5NGNw0J085076
%% repere.mp
boolean c;
input 3dgeom;
drawing_scale:=3D5cm;
vardef def_Repere(expr inst)=3D
new_obj_points(inst,21);
set_Repere_points(inst);
enddef;
vardef set_Repere_points(expr inst)=3D
set_point(1)(1,1,0);set_point(2)(-1,1,0);set_point(3)(-1,-1,0);set_point(=
4)(1,-1,0);
set_point(5)(1,0,1);set_point(6)(1,0,-1);set_point(7)(-1,0,-1);set_poin=
t(8)(-1,0,1);
set_point(9)(0,1,1);set_point(10)(0,1,-1);set_point(11)(0,-1,-1);set_po=
int(12)(0,-1,1);
set_point(13)(0,0,0);
set_point(14)(1,0,0);set_point(15)(-1,0,0);
set_point(16)(0,1,0);set_point(17)(0,-1,0);
set_point(18)(0,0,1);set_point(19)(0,0,-1);
c:=3Ddef_visual_inter(20)(14,6,1,16);
c:=3Ddef_visual_inter(21)(16,1,14,6);
enddef;
vardef draw_Repere(expr inst)=3D
%% Observateur dans les coordonn=E9es positives.
%%=20
%% Tri=E8dre de premier plan
draw_lines(13,14,1,16,13);
draw_lines(13,18,5,14,13);
draw_lines(13,16,9,18,13);
=20
if (zval(20)<-1) : message "c en dessous" ; draw_line(14,6);
else : message "c au dessus" ; draw_line(14,6);fi;=20
if (xval(21)>1) : message "bsup1"; ; draw_line(14,6);
else : message "binf1" ; draw_line(14,6);fi;
if (xval(21)<0) : message "PROBLEME" fi;=20
enddef;
=20
assign_obj("OIJK","Repere");
beginfig(1);
%projection_type:=3D1;
set_point_(Obs)(4,6,4);
Obs_phi:=3D90;
Obs_dist:=3D2;
point_of_view_obj("OIJK",13,Obs_phi);
reset_obj("OIJK");
draw_obj("OIJK");
endfig;
end.
--------------030005000000050908030307--