Page 1 sur 1

Amélioration d'un rendu

Posté : mer. 25 mars 2020, 12:16
par Viserion
Bonjour,
L'idée est de reproduire le plus fidèlement possible la figure ci-après :
Image
Le code me donne un résultat correct mais pas celui attendu. De plus, je ne parviens pas à tracer le cône ; j'ai essayé avec la structure skeleton qui ne semble pas fonctionner.
J'ai compilé avec la commande :

Code : Tout sélectionner

asy -f pdf -noprc render=4 file.asy
Merci.
Fabrice

Code : Tout sélectionner

triple pA=(0,0,0), pB=(0,0,h), pC=(-R,0,0), pM=(-r,0,0), pF=(0,0,a),
pE=(xpart(pM),ypart(pM), a);
triple axis=Z;

revolution CoRev=cone(pA,R,h,axis=Z,n=1);

surface cylinder=scale(r,r,a)*unitcylinder;

draw(surface(CoRev),orange+opacity(0.4),render);
draw(CoRev,1bp+black);

draw(cylinder,green+opacity(0.5),render(merge=true));

draw(pB--pA^^pA--pC^^pE--pF,dashed);

dot(Label("$C$",align=NW),pC);
dot(Label("$A$",align=SW),pA);
dot(Label("$M$",align=NW),pM);
dot(Label("$B$",align=N),pB);
dot(Label("$F$",align=W),pF);
dot(Label("$E$",align=NW),pE);

Re: Amélioration d'un rendu

Posté : mer. 25 mars 2020, 17:53
par GM
Bonjour,

J'ai voulu tester le code mais il est incomplet... et de toute façon, je croule sous les choses à faire pour le suivi des élèves à distance donc je ne pourrai regarder cela aujourd'hui car je dois me lancer dans la création d'une vidéo pour mon cours de TS sur les intégrales et je dois enchainer sur plusieurs créations de codes php/mysql pour inspirer 3 élèves en ISN qui sont sur leur projet de bac.

Re: Amélioration d'un rendu

Posté : ven. 27 mars 2020, 07:57
par GM
Bonjour,

avec le code suivant (complété en essayant de deviner ce qui pouvait manquer au début), j'obtiens ce qui suit (lien).

Code : Tout sélectionner

import solids;

size(0,200);
currentprojection=perspective(10,15,5);

real R=2;
real r=1;
real h=4;
real a=2;

triple pA=(0,0,0), pB=(0,0,h), pC=(-R,0,0), pM=(-r,0,0), pF=(0,0,a),
pE=(xpart(pM),ypart(pM), a);
triple axis=Z;

revolution CoRev=cone(pA,R,h,axis=Z,n=1);

surface cylinder=scale(r,r,a)*unitcylinder;

draw(surface(CoRev),orange+opacity(0.4),render(compression=Low));
draw(CoRev,1bp+black);

draw(cylinder,green+opacity(0.5),render(compression=Low));

draw(pB--pA^^pA--pC^^pE--pF,dashed);

dot(Label("$C$",align=NE),pC);
dot(Label("$A$",align=SW),pA);
dot(Label("$M$",align=NW),pM);
dot(Label("$B$",align=N),pB);
dot(Label("$F$",align=W),pF);
dot(Label("$E$",align=NE),pE);
Rendu avec la version 2.65 et sortie avec l'option html

version 2, avec ajout de currentlight=Viewport; pour remplacer le Headlamp par défaut

Re: Amélioration d'un rendu

Posté : ven. 27 mars 2020, 08:13
par GM
La galerie d'exemple serait à refaire pour
  • être compatible avec les versions récentes d'Asymptote
  • prendre en compte cette possibilité des sorties en HTML.
... mais je n'ai pas le temps.

Re: Amélioration d'un rendu

Posté : ven. 27 mars 2020, 09:09
par Viserion
Bonjour Gaetan,
En fait je suis déjà inscrit sur le forum avec mon prénom usuel (Fabrice), mais j'ai dû changer d'opérateur et donc d'adresse. Pour tout avouer, je me suis un peu écarté d'Asymptote, et j'ai un peu oublié ! Merci pour le code en cette période compliquée où on est tous submergé de travail ! Par contre, je serais intéressé, quand tout reviendra à la normale, sur les moyens que tu te donnes pour faire une vidéo de cours.
Merci.
Fabrice

Re: Amélioration d'un rendu

Posté : ven. 27 mars 2020, 09:22
par Viserion
Re,
Je viens de comparer ton code avec le mien : elle est où la différence mais il est vrai que j'ai les yeux qui sortent des orbites avec toutes ces heures passées devant l'écran !