You may view all the posts of the category "three.asy"
|
|
| (Compiled with Asymptote version 2.14svn-r5318) |
import three;
size(8cm,0);
real radius=1, theta=37, phi=60;
currentprojection=perspective(4,1,2);
// Planes
pen bg=gray(0.9)+opacity(0.5);
draw(surface((1.2,0,0)--(1.2,0,1.2)--(0,0,1.2)--(0,0,0)--cycle),bg,bg);
draw(surface((0,1.2,0)--(0,1.2,1.2)--(0,0,1.2)--(0,0,0)--cycle),bg,bg);
draw(surface((1.2,0,0)--(1.2,1.2,0)--(0,1.2,0)--(0,0,0)--cycle),bg,bg);
real r=1.5;
draw(Label("$x$",1), O--r*X, Arrow3(HookHead3));
draw(Label("$y$",1), O--r*Y, Arrow3(HookHead3));
draw(Label("$z$",1), O--r*Z, Arrow3(HookHead3));
label("$\rm O$", (0,0,0), W);
triple pQ=radius*dir(theta,phi); // Point Q
// triple pQ=radius*expi(radians(theta),radians(phi)); // Point Q
draw(O--radius*dir(90,phi)^^O--pQ, dashed);
dot("$R*\mathrm{dir}\left(\theta,\phi\right)$",pQ);
// Arcs
draw("$\theta$", reverse(arc(O,0.5*pQ,0.5*Z)), N+0.3E, Arrow3(HookHead2));
draw("$\phi$", arc(O,0.5*X,0.5*(pQ.x,pQ.y,0)), N+0.3E, Arrow3(HookHead2));
path3 p3=O--arc(O,radius,0,phi,90,phi)--cycle;
draw(surface(p3), blue+opacity(0.5));









8 novembre 2009 17 h 29 min
Bonjour,
Tout d'abord, merci pour ces exemples, réellement très intéressant pour comprendre asy.
J'aimerais pouvoir faire apparaître les vecteurs unitaires de la base sphérique locale. Ne maîtrisant pas encore du tout le langage, je ne vois pas trop comment faire. Pourriez-vous me mettre sur la voie.
Merci d'avance.
8 novembre 2009 19 h 48 min
Bonjour et merci pour vos encouragements.
Ce code répond-il à votre question ?
triple rl(real t, real p) { return (cos(t)*sin(p),sin(t)*sin(p),cos(p)); } triple tl(real t, real p) { return (-sin(t),cos(t),0); } triple pl(real t, real p) { return (cos(t)*cos(p),sin(t)*cos(p),-sin(p)); } draw(pQ--(pQ+rl(theta,phi)),Arrow3); draw(pQ--(pQ+tl(theta,phi)),Arrow3); draw(pQ--(pQ+pl(theta,phi)),Arrow3);11 novembre 2009 15 h 24 min
Merci de votre réponse, c'est bien ce que je cherche. J'ai néanmoins l'impression que ça ne donne pas le résultat voulu (n'y aurait-il pas une inversion entre theta et phi ?). Enfin, cela me donne une bonne base de travail : merci.
Petite remarque. Dans les commentaires, les — (doubles tirets) sont transformés en – (long tiret), ce qui pour du code peut être gênant.
12 février 2010 2 h 46 min
> n’y aurait-il pas une inversion entre theta et phi ?
Oui, c'est possible… ;-)
> Dans les commentaires, les — (doubles tirets) sont transformés en –
> (long tiret), ce qui pour du code peut être gênant.
J'ai enfin pris le temps de corriger le problème. Merci pour cette remarque.