Dessiner une surface en 3D à partir d'une matrice de cotes
2 participants
Page 1 sur 1
Dessiner une surface en 3D à partir d'une matrice de cotes
Bonjour,
Je fais suite à la discussion suivante sur le forum de MathemaTeX:
Discussion
Mon objectif est de dessiner une surface en 3D à partir d'une matrice des cotes située dans un fichier externe.
oleanet de MathemaTeX m'a dit qu'il avait contacté le créateur de TeXgraph pour lui transmettre mon fichier et que celui-ci lui avait rendu un fichier .obj.
Je voudrais juste savoir comment on peut faire cela en code TeXgraph dans TeX ?
Merci.
Je fais suite à la discussion suivante sur le forum de MathemaTeX:
Discussion
Mon objectif est de dessiner une surface en 3D à partir d'une matrice des cotes située dans un fichier externe.
oleanet de MathemaTeX m'a dit qu'il avait contacté le créateur de TeXgraph pour lui transmettre mon fichier et que celui-ci lui avait rendu un fichier .obj.
Je voudrais juste savoir comment on peut faire cela en code TeXgraph dans TeX ?
Merci.
OlivierG- Nombre de messages : 4
Age : 38
Date d'inscription : 06/03/2009
Re: Dessiner une surface en 3D à partir d'une matrice de cotes
Bonjour,
J'ai effectivement eu un message hier de (Mme) oleanet concernant ce problème. Je lui ai répondu que dans la version actuelle la lecture des données numériques se fait par paquet de 2 (TeXgraph ne gère que des listes de complexes), mais dans la prochaine version test il y a une commande pour lire les données numériques une à une. Si cette version test vous intéresse je peux la mettre en ligne (linux? windows?), j'ai gardé le code qui m'a permis de lire votre fichier de données, mais est-ce vraiment l'export obj qui vous intéresse? Tant qu'à faire autant exporter en pstricks ou eps (si vous voulez le lissage) pour insertion dans un document TeX.
J'ai effectivement eu un message hier de (Mme) oleanet concernant ce problème. Je lui ai répondu que dans la version actuelle la lecture des données numériques se fait par paquet de 2 (TeXgraph ne gère que des listes de complexes), mais dans la prochaine version test il y a une commande pour lire les données numériques une à une. Si cette version test vous intéresse je peux la mettre en ligne (linux? windows?), j'ai gardé le code qui m'a permis de lire votre fichier de données, mais est-ce vraiment l'export obj qui vous intéresse? Tant qu'à faire autant exporter en pstricks ou eps (si vous voulez le lissage) pour insertion dans un document TeX.
Re: Dessiner une surface en 3D à partir d'une matrice de cotes
Bonjour,
Mille pardons à Mme oleanet.
Je suis intéressé par cette nouvelle version ainsi que par le code qui vous a permis de lire le fichier de données.
Je préférerais effectivement exporter le dessin en pstricks, ps ou eps. Mais le code pour l'export en obj m'intéresse aussi, par curiosité.
Mon poste est équipé de Windows.
Merci d'avoir répondu aussi vite !
[EDIT] Je n'avais pas vu qu'un sujet similaire avait déjà été traité J'aurais peut-être pu m'en sortir tout seul.
Fil
Serait-ce possible d'avoir une couleur différente selon les lignes de niveau ?
Dernière question: est-ce facile d'ajouter les axes, graduations et légendes ?
Mille pardons à Mme oleanet.
Je suis intéressé par cette nouvelle version ainsi que par le code qui vous a permis de lire le fichier de données.
Je préférerais effectivement exporter le dessin en pstricks, ps ou eps. Mais le code pour l'export en obj m'intéresse aussi, par curiosité.
Mon poste est équipé de Windows.
Merci d'avoir répondu aussi vite !
[EDIT] Je n'avais pas vu qu'un sujet similaire avait déjà été traité J'aurais peut-être pu m'en sortir tout seul.
Fil
Serait-ce possible d'avoir une couleur différente selon les lignes de niveau ?
Dernière question: est-ce facile d'ajouter les axes, graduations et légendes ?
OlivierG- Nombre de messages : 4
Age : 38
Date d'inscription : 06/03/2009
Re: Dessiner une surface en 3D à partir d'une matrice de cotes
Re,
J'ai mis en ligne une version (1.94-beta-huit.1) qui inclut la commande qui manquait, dans le premier post de ce fil.
Je vous suggère de bien lire le fichier LisezMoi.txt, en particulier le chemin d'accès à TeXgrap ne doit pas comporter d'epace ou autre caractère exotique! Pour pouvoir utiliser le code TeXgraph dans un document LaTeX vous aurez aussi une petite manip à faire. Je suppose que vos avez une distribtution TeX à jour ainsi que les packages classiques, en particulier pstricks et pstricks-add.
Le fichier TeX que j'ai utilisé pour générer la figure est liredata.tex. Il suppose que le fichier de données est dans le même dossier que ce document et qu'il s'appelle test.dat.
Voici le contenu de ce fichier (à compiler avec l'option --enable-write18 sous Miktext ou --shell-escape sous TeXlive):
La compilation latex+dvips+ps2pdf me donne liredata.pdf. L'affichage dans Acrobat reader est très lent à cause du lissage, on peut bien sûr désactiver le lissage (smooth:=0). Personnellement pour ce genre de figure avec beaucoup de lissage, j'aime autant une bonne image jpg ou png en haute résolution.
Je serai de retour ce soir, si vous avez des problèmes n'hésitez pas.
J'ai mis en ligne une version (1.94-beta-huit.1) qui inclut la commande qui manquait, dans le premier post de ce fil.
Je vous suggère de bien lire le fichier LisezMoi.txt, en particulier le chemin d'accès à TeXgrap ne doit pas comporter d'epace ou autre caractère exotique! Pour pouvoir utiliser le code TeXgraph dans un document LaTeX vous aurez aussi une petite manip à faire. Je suppose que vos avez une distribtution TeX à jour ainsi que les packages classiques, en particulier pstricks et pstricks-add.
Le fichier TeX que j'ai utilisé pour générer la figure est liredata.tex. Il suppose que le fichier de données est dans le même dossier que ce document et qu'il s'appelle test.dat.
Voici le contenu de ce fichier (à compiler avec l'option --enable-write18 sous Miktext ou --shell-escape sous TeXlive):
- Code:
\documentclass[11pt,a4paper,frenchb]{article}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{xcolor}
\usepackage{amsmath,amssymb}
\usepackage{texgraph}
\usepackage[a4paper,margin=2cm,headheight=15pt,dvips]{geometry}
\usepackage{babel}
\usepackage{pstricks-add}
\begin{document}
\begin{texgraph}[name=surface, file]
Var
C = 0;
L = 0;
Cmd [S:=ReadData1("test.dat"),
k:=1,
for lg in S By jump do
NewVar(["lg",k], lg), Inc(k,1)
od,
L:=k-3
];
Mac
MakeSurf = [C:=Nops(lg2),
sommets:= for l from 1 to L do
for k from 1 to C do
lg1[l]+i*lg2[k], Eval(["lg",2+l,"[",k,"]"] ),
od
od,
faces:= for l from 1 to L-1 do
for k from 1 to C-1 do
x:=C*(l-1)+k,
[ x, x+C,x+1+C, x+1, jump]
od
od,
MakePoly(sommets, faces),
{WriteObj("test",sommets,faces)}
];
Graph objet1 = [
DotStyle:=square, LabelSize:=footnotesize, Fenetre(-6+5*i,6-6.5*i,1+i), size(12,1),
theta:=-139*deg, phi:=70*deg, ModelView(central),
stock:=MakeSurf(),
transformbox3d( rectangle3d(stock) ),
drawWin3d(0),
DrawFacet( stock, [color:=steelblue, smooth:=1]),
drawWin3d(1),
for x from Xinf to Xsup step (Xsup-Xinf)/4 do
LabelDot( Proj3D(M(x,Yinf,Zinf)), Round(x,2), "SE",1)
od,
for y from Yinf to Ysup step (Ysup-Yinf)/4 do
LabelDot( Proj3D(M(Xinf,y,Zinf)), Round(y,2), "SO",1)
od,
for z from Zinf to Zsup step (Zsup-Zinf)/4 do
LabelDot( Proj3D(M(Xsup,Yinf,z)), Round(z,2), "E",1)
od,
LabelDot( Proj3D(M(Xsup,Yinf,(Zinf+Zsup)/2)), "z", "[1.5,1]"),
LabelDot( Proj3D(M((Xinf+Xsup)/2,Yinf,Zinf)), "x", "[1.5,1-i]" ),
LabelDot( Proj3D(M(Xinf,(Yinf+Ysup)/2,Zinf)), "y", "[1.5,-1-i]" ),
];
\end{texgraph}
\end{document}
La compilation latex+dvips+ps2pdf me donne liredata.pdf. L'affichage dans Acrobat reader est très lent à cause du lissage, on peut bien sûr désactiver le lissage (smooth:=0). Personnellement pour ce genre de figure avec beaucoup de lissage, j'aime autant une bonne image jpg ou png en haute résolution.
Je serai de retour ce soir, si vous avez des problèmes n'hésitez pas.
Re: Dessiner une surface en 3D à partir d'une matrice de cotes
Eh ben, c'est pas mal du tout !
La lenteur d'affichage ne me pose pas trop de problème par contre je ne sais pas s'il y a moyen de diminuer la résolution du graphique pour diminuer le poids du fichier (car j'aurai sûrement plusieurs surfaces dans mon document). Bon pour l'instant tout cela est secondaire.
J'essaie tout ça ce week-end. Je vous tiens au courant.
La lenteur d'affichage ne me pose pas trop de problème par contre je ne sais pas s'il y a moyen de diminuer la résolution du graphique pour diminuer le poids du fichier (car j'aurai sûrement plusieurs surfaces dans mon document). Bon pour l'instant tout cela est secondaire.
J'essaie tout ça ce week-end. Je vous tiens au courant.
OlivierG- Nombre de messages : 4
Age : 38
Date d'inscription : 06/03/2009
Re: Dessiner une surface en 3D à partir d'une matrice de cotes
Re,
Je n'avais pas vu votre edit concernant la coloration, là ça se complique un peu au niveau de la programmation. Il y a deux façons de faire cette coloration, j'ai illustré les deux dans le document TeX suivant: liredata2.tex. Dans ce document j'ai fait un export pgf et une compilation pdflatex.
Le résultat: liredata2.pdf
Je n'avais pas vu votre edit concernant la coloration, là ça se complique un peu au niveau de la programmation. Il y a deux façons de faire cette coloration, j'ai illustré les deux dans le document TeX suivant: liredata2.tex. Dans ce document j'ai fait un export pgf et une compilation pdflatex.
Le résultat: liredata2.pdf
Re: Dessiner une surface en 3D à partir d'une matrice de cotes
Bonsoir,
Merci pour la coloration.
Vous êtes peut-être déjà au courant, mais j'ai posté la même question sur le forum d'Asymptote pour avoir plusieurs solutions et retenir celle qui me semble la plus adaptée.
Bonne semaine et encore merci !
Merci pour la coloration.
Vous êtes peut-être déjà au courant, mais j'ai posté la même question sur le forum d'Asymptote pour avoir plusieurs solutions et retenir celle qui me semble la plus adaptée.
Bonne semaine et encore merci !
OlivierG- Nombre de messages : 4
Age : 38
Date d'inscription : 06/03/2009
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|