Amélioration du rendu d'un cône

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Amélioration du rendu d'un cône

Messagepar Fabrice Couvreur » Jeudi 27 Octobre 2011, 00:27

Bonsoir,
Dans le code ci-après :
Code: Tout sélectionner
import solids;
settings.outformat="pdf";
settings.pdfviewer="acroread";
settings.render=0;
currentprojection = orthographic(0,-30,5);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.2cm);
picture pic1;
unitsize(pic1,0.2cm);
triple O=(0,0,0);
triple Oprime=(0,0,h-H);
triple pS=(0,0,H);
revolution pluvio=cone(O,R,H,axis=-Z,1);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
draw(pic1,pluvio);
draw(pic1,surface(pluie),lightblue+opacity(0.4));
draw(pic1,pluie,1bp+lightblue+opacity(0.9));
draw(pic1,cylinder(O,R,2));
draw(pic1,"$\scriptstyle{400}$",(-20,7)--(20,7),N,Arrows);
draw(pic1,"$\scriptstyle{400}$",(-22,0)--(-22,-H),W,Arrows);
draw(pic1,"$\scriptstyle{h}$",(-15,h-H)--(-15,-H),W,Arrows);
draw(pic1,"$\scriptstyle{r}$",(0,h-H)--(10,h-H),N,Arrows);
label(pic1,"$V(p)$",(0,0.5*h-H),N);
picture pic2;
unitsize(pic2,0.2cm);
path s1=(0,-40)--(20,0);
path s2=(0,h-H)--(20,h-H);
pair z2=(0,h-H);
pair z1=intersectionpoint(s1,s2);
draw(pic2,(0,0)--(20,0)--(0,-40)--cycle^^z1--z2);
label(pic2,"$\scriptstyle{r}$",midpoint(z1--z2),N);
label(pic2,"$\scriptstyle{200}$",(10,0),N);
label(pic2,"$\scriptstyle{400}$",(0,-20),W);
picture pic;
add(pic,pic1.fit(),(0,0));
add(pic,pic2.fit(),(25,0));
add(pic);

je souhaiterais:
1) ne plus voir les "traces" de la génératrice du cône qui représente l'eau de pluie ;

2) mettre en pointillés (encore !) les parties des cercles qui le nécessitent.

Ensuite, il y a quelque chose que je ne comprends pas : en changeant settings.render=0 en settings.render=4, la figure ne ressemble plus à grand chose !

Merci.
Fabrice Couvreur
Giga-utilisateur
 
Messages: 604
Inscription: Samedi 18 Août 2007, 00:55

Publicité

Re: Amélioration du rendu d'un cône

Messagepar maurice » Jeudi 27 Octobre 2011, 04:42

Bonsoir Fabrice,

Fabrice Couvreur a écrit:je souhaiterais:
1) ne plus voir les "traces" de la génératrice du cône qui représente l'eau de pluie ;

2) mettre en pointillés (encore !) les parties des cercles qui le nécessitent.

Ensuite, il y a quelque chose que je ne comprends pas : en changeant settings.render=0 en settings.render=4, la figure ne ressemble plus à grand chose !

Merci.


1)Tu parles des lignes qui apparaissent sur le forum ci-dessous ?

26320b850d4715911f1771d4da6422c4.png

Code: Tout sélectionner
import solids;
currentprojection = orthographic(0,-30,5);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.2cm);

triple Oprime=(0,0,h-H);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
draw(shift(0,0,H-h)*surface(pluie),lightblue+opacity(0.4));

path3 gene=(0,0,-H)--(0,r,-h);
revolution eau=revolution(O, gene,Z, -180, 180);

draw(shift((2*r,0,H-h))*surface(eau), yellow+opacity(0.4));


Je n'ai pas ca chez moi lorsque je compile, même avec -render=0 ...

cone_FC.png
cone_FC.png (12.78 Kio) Vu 916 fois


2) je ne pense pas qu'il y ait de remède miracle. On en avait déjà parlé dans un précédent post avec une solution de OG.


3) quand au render=4, ca fait des trucs bizarre chez mois aussi, peut-être du au mélange de 3d et de géométrie plane.


Désolé de ne pas pourvoir t'aider davantage.
Pour les pointillés j'essaierai de revoir la méthode d'Olivier demain si j'ai le temps.

Bonne nuit

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 08:36

maurice a écrit:1)Tu parles des lignes qui apparaissent sur le forum ci-dessous ?

26320b850d4715911f1771d4da6422c4.png

Code: Tout sélectionner
import solids;
currentprojection = orthographic(0,-30,5);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.2cm);

triple Oprime=(0,0,h-H);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
draw(shift(0,0,H-h)*surface(pluie),lightblue+opacity(0.4));

path3 gene=(0,0,-H)--(0,r,-h);
revolution eau=revolution(O, gene,Z, -180, 180);

draw(shift((2*r,0,H-h))*surface(eau), yellow+opacity(0.4));


Je n'ai pas ca chez moi lorsque je compile, même avec -render=0 ...


Ajoute -f pdf, et tu devrais avoir les lignes aussi.

Il a demandé de la transparence que tu n'obtiens qu'en demandant un pdf.

Sur ta figure, tu n'as pas les traits mais tu n'as pas la transparence : car tu visualises un eps ! ;-)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 09:18

Fabrice Couvreur a écrit:je souhaiterais:
1) ne plus voir les "traces" de la génératrice du cône qui représente l'eau de pluie ;

2) mettre en pointillés (encore !) les parties des cercles qui le nécessitent.


En plus du lien donné par Maurice (que je n'ai pas lu), voilà un exemple :

9dc5df4fae6556152ea51b8b68616737.png

Code: Tout sélectionner
import solids;
currentprojection = orthographic(0,30,-5);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.4cm);

triple Oprime=(0,0,h-H);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
transform3 t=shift(0,0,H-h);
draw(t*surface(pluie,n=2),lightblue+opacity(0.2));
draw(t*pluie,2,.8bp+blue);


A noter :
  • n=2 (qui fait disparaitre les lignes mais qui doit faire perdre en précision du tracé du cône... et qui dégrade l'effet d'éclairage.) ;
  • l'ajout du tracé du cône ;
  • un currentprojection correct : le tien ne permettait pas d'avoir des pointillés.

L'exemple proposé a des défauts mais peut-être qu'il pourra dépanner.

D'autres sources d'idées
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar Fabrice Couvreur » Jeudi 27 Octobre 2011, 11:49

Bonjour,
GMaths a écrit:Ajoute -f pdf, et tu devrais avoir les lignes aussi.

Si je compile le code de Maurice avec :
Code: Tout sélectionner
asy -V -f pdf -prc maurice.asy
il me semble que l'on obtient de la transparence (ou je suis encore à moitié endormi !) sans les traits de la génératrice.
GMaths a écrit:L'exemple proposé a des défauts mais peut-être qu'il pourra dépanner.

Sauf que les pointillés sont devant et qu'il devrait être derrière. De toutes façons, en vraie 3D, il n'y en a pas et qu'il faut plutôt jouer avec la transparence.
Je reviens donc à mon code qui ne fonctionne pas comme je voudrais.
Code: Tout sélectionner
import solids;
settings.render=0;
settings.outformat="pdf";
settings.pdfviewer="acroread";
currentprojection = orthographic(0,-30,5);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.2cm);
picture pic1;
unitsize(pic1,0.2cm);
triple O=(0,0,0);
triple Oprime=(0,0,h-H);
triple pS=(0,0,H);
revolution pluvio=cone(O,R,H,axis=-Z,1);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
draw(pic1,pluvio);
draw(pic1,surface(pluie),lightblue+opacity(0.4));
draw(pic1,pluie,1bp+lightblue+opacity(0.9));
draw(pic1,cylinder(O,R,2));
draw(pic1,"$\scriptstyle{400}$",(-20,7)--(20,7),N,Arrows);
draw(pic1,"$\scriptstyle{400}$",(-22,0)--(-22,-H),W,Arrows);
draw(pic1,"$\scriptstyle{h}$",(-15,h-H)--(-15,-H),W,Arrows);
draw(pic1,"$\scriptstyle{r}$",(0,h-H)--(10,h-H),N,Arrows);
label(pic1,"$V(p)$",(0,0.5*h-H),N);
picture pic2;
unitsize(pic2,0.2cm);
path s1=(0,-40)--(20,0);
path s2=(0,h-H)--(20,h-H);
pair z2=(0,h-H);
pair z1=intersectionpoint(s1,s2);
draw(pic2,(0,0)--(20,0)--(0,-40)--cycle^^z1--z2);
label(pic2,"$\scriptstyle{r}$",midpoint(z1--z2),N);
label(pic2,"$\scriptstyle{200}$",(10,0),N);
label(pic2,"$\scriptstyle{400}$",(0,-20),W);
picture pic;
add(pic,pic1.fit(),(0,0));
add(pic,pic2.fit(),(25,0));
add(pic);

Utilisateur d'Emacs, je compile ce code avec C-c C-c et j'obtiens à peu près ce que je souhaite (sauf que le cône et le triangle ne semblent pas reposer sur le même plan et les traces de la génératrice qui me chagrinent !).
Si j'enlève
Code: Tout sélectionner
settings.outformat="pdf";
settings.pdfviewer="acroread";
et que je compile avec Emacs, sortie de l'image au format dvi (gv : pluviometre_.dvi), donc je n'obtiens pas l'image au format eps !
Si je compile ce code en ligne de commande avec :
Code: Tout sélectionner
asy -V -f pdf -prc pluviometre.asy


Code: Tout sélectionner
/usr/local/share/asymptote/plain_picture.asy: 1499.16: runtime:
LaTeX Warning: File `pluviometre+0.eps' not found on input line 0.


! LaTeX Error: File `pluviometre+0.eps' not found.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                             
                                                 
<*> ...25.84375pt}{253.94875pt}{pluviometre+0.prc}
                                                  }

! LaTeX Error: Cannot determine size of graphic in pluviometre+0.eps (no Boundi
ngBox).

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                             
                                                 
<*> ...25.84375pt}{253.94875pt}{pluviometre+0.prc}
                                                  }
<pluviometre+0.eps>

Merci.
Ps : je n'arrive jamais à faire comme vous : avoir l'image en mettant le code entre les balises [asy][/asy] !
Fabrice Couvreur
Giga-utilisateur
 
Messages: 604
Inscription: Samedi 18 Août 2007, 00:55

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 12:57

Fabrice Couvreur a écrit:Sauf que les pointillés sont devant et qu'il devrait être derrière.

Pas du tout ! Ils sont derrière !
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 13:04

Fabrice Couvreur a écrit:
GMaths a écrit:Ajoute -f pdf, et tu devrais avoir les lignes aussi.

Si je compile le code de Maurice avec :
Code: Tout sélectionner
asy -V -f pdf -prc maurice.asy
il me semble que l'on obtient de la transparence (ou je suis encore à moitié endormi !) sans les traits de la génératrice.

oui mais ce que tu visualises est alors la version prc animable à la souris... (avec adobe reader)... sans surcouche d'une image statique nécessaire pour les autres lecteurs de pdf, qui n'auront qu'une image blanche sinon.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 13:15

Fabrice Couvreur a écrit:Je reviens donc à mon code qui ne fonctionne pas comme je voudrais.

Ne sois pas surpris qu'il y ait des problèmes : tu fais un de ces mélanges entre la 3d et la 2d...
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 13:25

GMaths a écrit:
Fabrice Couvreur a écrit:Je reviens donc à mon code qui ne fonctionne pas comme je voudrais.

Ne sois pas surpris qu'il y ait des problèmes : tu fais un de ces mélanges entre la 3d et la 2d...

... mais je vais tester car je ne suis pas sûr, après réflexion, que cela soit ça qui cause le message d'erreur.
Dernière édition par GMaths le Jeudi 27 Octobre 2011, 13:36, édité 1 fois.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 13:35

GMaths a écrit:
GMaths a écrit:
Fabrice Couvreur a écrit:Je reviens donc à mon code qui ne fonctionne pas comme je voudrais.

Ne sois pas surpris qu'il y ait des problèmes : tu fais un de ces mélanges entre la 3d et la 2d...

... mais je vais tester car je ne suis pas sûr, après réflexion, que cela soit ça qui cause le message d'erreur.

Je crois que tu vas pouvoir signaler que tu as le même problème que celui-ci :
http://sourceforge.net/projects/asymptote/forums/forum/409349/topic/4756253
pour relancer JCBowman.

Avec -noprc, j'imagine que cela doit passer.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar Fabrice Couvreur » Jeudi 27 Octobre 2011, 13:37

Salut Gaetan,
GMaths a écrit:Pas du tout ! Ils sont derrière !

:oops: je n'avais pas testé ton code mais je n'avais fait que regarder l'image où on semble voir les pointillés en face.
GMaths a écrit:tu fais un de ces mélanges entre la 3d et la 2d...

J'avais aussi cette impression, mais mon idée était de superposer les deux dessins dans une seule image.
Fabrice Couvreur
Giga-utilisateur
 
Messages: 604
Inscription: Samedi 18 Août 2007, 00:55

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 13:43

Fabrice Couvreur a écrit:Salut Gaetan,
GMaths a écrit:Pas du tout ! Ils sont derrière !

:oops: je n'avais pas testé ton code mais je n'avais fait que regarder l'image où on semble voir les pointillés en face.

Attention, la base est plus claire... car le cône n'est pas fermé : il y a une épaisseur en moins !

Ajoute les axes temporairement ... et tu verras mieux l'angle de vue que tu choisis !
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 14:26

GMaths a écrit:Avec -noprc, j'imagine que cela doit passer.


En fait, avec un simple code tel que celui-ci, le problème se pose aussi :

Code: Tout sélectionner
import three;
picture pic;
draw(pic,unitsphere);
add(pic.fit(5cm));


Code: Tout sélectionner
asy -render 0  -f pdf nomdufichierasy

déclenche l'erreur.
Bizarre que je ne me souvenais pas qu'il fallait ajouter -noprc lorsque l'on demande render=0 avec une sortie pdf, pour une scène 3d : je pensais qu'automatiquement une option prenait le pas sur l'autre.
Mais il semble que maintenant qu'il va falloir ajouter manuellement -noprc.
Bizarre, bizarre... ma mémoire me joue des tours (du fait que j'utilise très peu render=0) ?
Dernière édition par GMaths le Jeudi 27 Octobre 2011, 14:34, édité 2 fois.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 14:30

GMaths a écrit:
GMaths a écrit:Avec -noprc, j'imagine que cela doit passer.


En fait, avec un simple code tel que celui-ci, le problème se pose aussi :

Code: Tout sélectionner
import three;
picture pic;
draw(pic,unitsphere);
add(pic.fit(5cm));


Code: Tout sélectionner
asy -render 0  -f pdf nomdufichierasy

déclenche l'erreur.
Bizarre que je ne me souvenais pas qu'il fallait ajouter -noprc lorsque l'on demande render=0 avec une sortie pdf, pour une scène 3d : je pensais qu'automatiquement une option prenait le pas sur l'autre.
Mais il semble que maintenant qu'il va falloir ajouter manuellement -noprc.
Bizarre, bizarre... ma mémoire me joue des tours (du fait que j'utilise très peu render=0) ?


... mais celui-ci passe !!!

Code: Tout sélectionner
import three;
size(5cm);
draw(unitsphere);


On a peut-être là un problème à remonter à JCBowman.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar GMaths » Jeudi 27 Octobre 2011, 15:07

GMaths a écrit:On a peut-être là un problème à remonter à JCBowman.


Dans un anglais approximatif, je l'ai fait : réponse à surveiller.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar Fabrice Couvreur » Jeudi 27 Octobre 2011, 18:20

Bonsoir,
Petite amélioration du code :
Code: Tout sélectionner
import solids;
currentprojection = orthographic(0,30,-5);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.2cm);
picture pic1;
unitsize(pic1,0.2cm);
triple O=(0,0,0);
triple Oprime=(0,0,h-H);
triple pS=(0,0,H);
revolution pluvio=cone(O,R,H,axis=-Z,1);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
draw(pic1,pluvio);
draw(pic1,surface(pluie),lightblue+opacity(0.4));
draw(pic1,pluie,0.8bp+lightblue+opacity(0.9));
draw(pic1,cylinder(O,R,2));
draw(pic1,"$\scriptstyle{400}$",(-20,0,7)--(20,0,7),N,Arrows3);
draw(pic1,"$\scriptstyle{400}$",(-22,0,0)--(-22,0,-H),W,Arrows3);
draw(pic1,"$\scriptstyle{h}$",(-15,0,h-H)--(-15,0,-H),W,Arrows3);
draw(pic1,"$\scriptstyle{r}$",(0,0,h-H)--(10,0,h-H),N,Arrows3);
label(pic1,"$V(p)$",(0,0,0.5*h-H),N);
picture pic2;
unitsize(pic2,0.2cm);
path s1=(0,-40)--(20,0);
path s2=(0,h-H)--(20,h-H);
pair z2=(0,h-H);
pair z1=intersectionpoint(s1,s2);
draw(pic2,(0,0)--(20,0)--(0,-40)--cycle^^z1--z2);
label(pic2,"$\scriptstyle{r}$",midpoint(z1--z2),N);
label(pic2,"$\scriptstyle{200}$",(10,0),N);
label(pic2,"$\scriptstyle{400}$",(0,-20),W);
picture pic;
size(pic,0.2cm);
add(pic,pic1);
add(pic,pic1.fit(),(0,0));
add(pic,pic2.fit(),(25,0));
add(pic);


1)
Code: Tout sélectionner
asy -noprc -render=8 -f pdf

J'obtiens un fichier correct au niveau du rendu sauf que les deux images sont décalées.

2)
Code: Tout sélectionner
asy -prc -render=8 -f pdf

Idem, sauf que je peux bouger le cône (normal car embarquant du prc !).

3)
Code: Tout sélectionner
asy -prc -render=0 -f pdf

Bug déjà soulevé dans un post précédent.

4)
Code: Tout sélectionner
asy -noprc -render=0 -f pdf

J'obtiens à peu près ce que je veux tant au niveau du rendu que dans l'alignement des images.
Petite question qui n'a rien à voir avec notre problème : pourquoi à l'ouverture de fichiers au format eps produit par Asymptote avec gv, on a comme libellé en haut soit "gv: monfichier.eps" soit "gv: monfichier_.dvi" ?
Quelle est la différence ?
Merci.
Fabrice Couvreur
Giga-utilisateur
 
Messages: 604
Inscription: Samedi 18 Août 2007, 00:55

Re: Amélioration du rendu d'un cône

Messagepar maurice » Jeudi 27 Octobre 2011, 23:30

Bonsoir, voici ce que je propose : un changement de currentprojection et ma première vraie utilisation de invert :

Code: Tout sélectionner
import solids;
//currentprojection = orthographic(0,30,-5);
currentprojection=orthographic(5,4,2);

real R=20;
real H=40;
real h=20;
real r=h*R/H;
unitsize(0.2cm);
picture pic1;
unitsize(pic1,0.2cm);
triple O=(0,0,0);
triple Oprime=(0,0,h-H);
triple pS=(0,0,H);
revolution pluvio=cone(O,R,H,axis=-Z,1);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
draw(pic1,pluvio, frontpen=invisible, longitudinalpen=black);
draw(pic1,surface(pluie),lightblue+opacity(0.4));
draw(pic1,pluie,0.8bp+lightblue+opacity(0.9));
draw(pic1,cylinder(O,R,2));
//draw(pic1,"$\scriptstyle{400}$",(-20,0,7)--(20,0,7),N,Arrows3);
//draw(pic1,"$\scriptstyle{400}$",(-22,0,0)--(-22,0,-H),W,Arrows3);
//draw(pic1,"$\scriptstyle{h}$",(-15,0,h-H)--(-15,0,-H),W,Arrows3);
draw(pic1,"$\scriptstyle{r}$",(0,0,h-H)--(10,0,h-H),N,Arrows3);
label(pic1,"$V(p)$",(0,0,0.5*h-H),N);

triple pA=invert((-R,10), Z, O);
triple pB=invert((R,10), Z, O);
draw(pic1,"$\scriptstyle{400}$",pA--pB,N,Bars3);

triple pC=invert((-R-2,0), Z, O);
triple pD=invert((-R-2, -H), Z, O);
draw(pic1,"$\scriptstyle{400}$",pC--pD,W,Bars3);

triple pF=invert((-r-2, h-H), Z, O);
triple pG=invert((-r-2, -H), Z, O);
draw(pic1,"$\scriptstyle{h}$",pF--pG,W,Bars3);

draw((0,0,-H)--pD, dashed);


picture pic2;
unitsize(pic2,0.2cm);
path s1=(0,-40)--(20,0);
path s2=(0,h-H)--(20,h-H);
pair z2=(0,h-H);
pair z1=intersectionpoint(s1,s2);
draw(pic2,(0,0)--(20,0)--(0,-40)--cycle^^z1--z2);
label(pic2,"$\scriptstyle{r}$",midpoint(z1--z2),N);
label(pic2,"$\scriptstyle{200}$",(10,0),N);
label(pic2,"$\scriptstyle{400}$",(0,-20),W);
picture pic;
size(pic,0.2cm);
add(pic,pic1);
add(pic,pic1.fit(),(0,0));
add(pic,pic2.fit(),(25,0));
add(pic);


Bonne journée

pluvio.png


Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar chellier » Vendredi 28 Octobre 2011, 11:27

Bonjour,

Allez, je vais faire l'inspecteur des travaux finis :wink:

Quelques remarques-réflexions :
  • Si on veut du prc, les flèches de cotation de Maurice ne vont pas correspondre lorsque la figure tourne, mais est-ce que c'est très utile ici de pouvoir bouger la figure 3D ?
  • Sinon, d'accord avec le changement de vue, ça parait plus naturel.
    Voila pour le point de vue "esthétique" !
    Du point de vue du code :
  • Je pense qu'on peut simplifier la dernière partie. Il ne semble pas nécessaire d'utiliser encore une "picture" pic. Il y a juste à utiliser currentpicture, dont les unités sont déjà définies par unitsize(0.2cm); au début du code.
    On peut donc écrire :

    Code: Tout sélectionner
    add(pic1.fit(),(0,0));
    add(pic2.fit(),(25,0));
    // --- au lieu de -----------------
    //picture pic;
    //size(pic,0.2cm);
    //add(pic,pic1);
    //add(pic,pic1.fit(),(0,0));
    //add(pic,pic2.fit(),(25,0));
    //add(pic);

Voilà pour ces quelques remarques qui n'apportent pas grand chose, j'en conviens, c'était juste pour participer :mrgreen:

Christophe

PS : Sympa l'utilisation de project et d'invert de Gaetan :D
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Amélioration du rendu d'un cône

Messagepar Fabrice Couvreur » Vendredi 28 Octobre 2011, 18:30

Bonsoir,
@ Christophe
chellier a écrit:Je pense qu'on peut simplifier la dernière partie. Il ne semble pas nécessaire d'utiliser encore une "picture" pic

As-tu essayé ?
@ Maurice
Les améliorations que tu as apportées, je les adopte , merci.
J'ai néanmoins quelques questions :
- comment as-tu trouvé aussi rapidement le "bon" point de vue ? En jouant avec OpenGl ce n'était pas très convaincant pour moi !
- les pointillés du cône représentant l'eau ne sont pas très visibles (si ce n'était que pour moi, je n'en mettrais jamais !).

J'ai essayé de modifier le code pour que la coupe du cône soit à la même hauteur que le cône, cela marche sauf pour les labels où l'on a des rectangles noirs.

Code: Tout sélectionner
import solids;
currentprojection=orthographic(5,4,2);
unitsize(0.2cm);
real R=20;
real H=40;
real h=20;
real r=h*R/H;
triple O=(0,0,0);
triple Oprime=(0,0,h-H);
triple pS=(0,0,H);
revolution pluvio=cone(O,R,H,axis=-Z,1);
revolution pluie=cone(Oprime,r,h,axis=-Z,1);
picture pic1;
unitsize(pic1,0.2cm);
draw(pic1,pluvio, frontpen=invisible, longitudinalpen=black);
draw(pic1,surface(pluie),lightblue+opacity(0.4));
draw(pic1,pluie,0.8bp+lightblue+opacity(0.9));
draw(pic1,cylinder(O,R,2));
draw(pic1,"$\scriptstyle{r}$",(0,0,h-H)--(10,0,h-H),N,Arrows3);
label(pic1,"$V(p)$",(0,0,0.5*h-H),N);
triple pA=invert((-R,10), Z, O);
triple pB=invert((R,10), Z, O);
draw(pic1,"$\scriptstyle{400}$",pA--pB,N,Bars3);
triple pC=invert((-R-2,0), Z, O);
triple pD=invert((-R-2, -H), Z, O);
draw(pic1,"$\scriptstyle{400}$",pC--pD,W,Bars3);
triple pF=invert((-r-2, h-H), Z, O);
triple pG=invert((-r-2, -H), Z, O);
draw(pic1,"$\scriptstyle{h}$",pF--pG,W,Bars3);
draw((0,0,-H)--pD, dashed);
picture pic2;
unitsize(pic2,0.2cm);
triple z1=invert((0,-40),Z,O);
triple z2=invert((20,0),Z,O);
triple z3=invert((0,h-H),Z,O);
triple z4=invert((20,h-H),Z,O);
path3 s1=z1--z2;
path3 s2=z3--z4;
triple Z1=intersectionpoint(s1,s2);
draw(pic2,O--z2--z1--O^^z3--Z1);
label(pic2,"$\scriptstyle{r}$",z3--Z1,N);
label(pic2,"$\scriptstyle{200}$",O--z2,N);
label(pic2,"$\scriptstyle{400}$",O--z1,W);
picture pic;
size(pic,0.2cm);
add(pic,pic1);
add(pic,pic1.fit3(),O);
add(pic,pic2.fit3(),invert((25,0),Z,O));
add(pic);
Fabrice Couvreur
Giga-utilisateur
 
Messages: 604
Inscription: Samedi 18 Août 2007, 00:55

Re: Amélioration du rendu d'un cône

Messagepar maurice » Vendredi 28 Octobre 2011, 19:54

Fabrice Couvreur a écrit:@ Maurice
Les améliorations que tu as apportées, je les adopte , merci.
J'ai néanmoins quelques questions :
- comment as-tu trouvé aussi rapidement le "bon" point de vue ? En jouant avec OpenGl ce n'était pas très convaincant pour moi !
- les pointillés du cône représentant l'eau ne sont pas très visibles (si ce n'était que pour moi, je n'en mettrais jamais !).


Pour le point de vue c'est un hasard, j'ai simplement repris celui d'un exemple de la doc 3D.
Je n'ai pas le souvenir d'avoir mi des pointillés dans le petit cône ...

maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Suivante

Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 invités