Page 1 sur 2
Cercles de Villarceau
Posté : dim. 9 mai 2010, 23:21
par Infophile
Bonsoir,
J'essaye de reproduire ma figure Maple ci-dessous, il s'agit des cercles de Villarceau, intersections du tore

par le plan

(où

de sorte qu'il soit bitangeant au tore). Pour le moment j'ai tracé le tore et plan sécant, voici le code :
Code : Tout sélectionner
import solids;
currentprojection=orthographic(8.5,9.5,8);
currentlight=(0,5,5);
size(8cm,0);
// Paramètres et définition du tore
real a=3, R=1, d=a+2R;
revolution tore=revolution(shift(a*X)*Circle(O,R,Y,32),Z);
surface s=surface(tore);
// Définition du plan bitangeant au tore
triple v1=(10,0,0),
v2=(0,10,0),
p0=(-5,-5,0);
path3 pl1=plane(v1,v2,p0);
path3 pl2=rotate(19.47,Y)*pl1;
// On trace le tore et le plan sécant
draw(s,orange);
draw(surface(pl2),blue);
Maintenant, j'ai les équations paramétriques de ces cercles (ou bien leur équation dans le plan

comme ça vous arrange),
comment les trace-t-on ?
Ensuite est-il possible comme en Maple de faire apparaître ce
quadrillage (patchgrid) pour voir à l'intérieur du tore ? Enfin pourquoi n'y a-t-il pas d'
effet de lumière sur le plan ?
Merci !
Re: Cercles de Villarceau
Posté : dim. 9 mai 2010, 23:48
par GM
Je ne vais pas pouvoir étudier ton problème ce soir... désolé.
J'ai juste compilé vite fait ton exemple... et je te montre (si tu ne savais pas) que, dans un pdf avec prc, tu peux modifier le rendu, l'éclairage de ce que tu visualises :

- 2010-05-10_004004.png (24.29 Kio) Vu 12031 fois
image obtenue avec "Mode de rendu du modèle" réglé sur "Illustration ombrée".
Le maillage comme ton image... ce ne sera pas évident... je crois.
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 00:00
par Infophile
Je ne vais pas pouvoir étudier ton problème ce soir... désolé.
Pas de problème, j'ai tout le mois de juin
Pour l'effet de lumière en fait ce que j'aurais aimé c'est avoir les mêmes reflets que sur le tore, là le plan est complètement opaque c'est moins joli.
Bonne nuit
GM !
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 08:26
par GM
Infophile a écrit :Pour l'effet de lumière en fait ce que j'aurais aimé c'est avoir les mêmes reflets que sur le tore, là le plan est complètement opaque c'est moins joli.
Une remarque non vérifiée : je pense que l'éclairage des surfaces reste "basique"... et ne se fait en un point d'une surface qu'en fonction de la direction normale à cette surface en ce point... donc pour un plan... j'ai bien l'impression que tu devras te contenter d'un éclairage "monotone".

Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 13:06
par ctop
Même si ce n'est pas une solution satisfaisante, tu peux peut-être améloirer les choses avec le paramètre opacity().
et tu peux encore améliorer les choses avec un truc du genre
Code : Tout sélectionner
draw(surface(pl2,
new pen[] {blue+opacity(.4),
darkblue,
darkblue,
blue}));
permet de voir le tore par transparence en donnant un petit effet de rendu
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 18:11
par Infophile
Ok merci, et pour le tracé des cercles ?
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 19:45
par GM
Infophile a écrit :Ok merci, et pour le tracé des cercles ?
On connait les coordonnées de leur centre, leur rayon, l'inclinaison du plan... donc très simplement ainsi :
Code : Tout sélectionner
import solids;
currentprojection=orthographic(8.5,9.5,8);
currentlight=(0,5,5);
size(8cm,0);
// Paramètres et définition du tore
real a=3, R=1, d=a+2R;
revolution tore=revolution(shift(a*X)*Circle(O,R,Y,32),Z);
surface s=surface(tore);
// Définition du plan bitangeant au tore
triple v1=(2d,0,0),
v2=(0,2d,0),
p0=(-d,-d,0);
path3 pl1=plane(v1,v2,p0);
transform3 r=rotate(asin(R/a)*180/pi,Y);
path3 pl2=r*pl1;
draw(Circle((0,R,0),a,r*Z),2bp+red);
draw(Circle((0,-R,0),a,r*Z),2bp+red);
// On trace le tore et le plan sécant
draw(s,orange);
draw(surface(pl2),blue);
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 22:30
par Infophile
Merci beaucoup, j'ai réussi à faire d'autres coupes à partir de cet exemple. Mais de manière générale on peut représenter une courbe dans l'espace avec sa paramétrisation dans Asymptote ?
Maintenant j'aimerais reproduire la figure Maple ci-dessous, vous avez dit que le
patchgrid était difficilement faisable avec Asymptote donc ? Parce que j'ai essayé avec des sphères pleines (centrées en

et de rayon

) et bien même avec
opacity je trouve que la mise en évidence des cercles n'est pas très claire, comment feriez-vous ?
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 22:49
par GM
Infophile a écrit :Merci beaucoup, j'ai réussi à faire d'autres coupes à partir de cet exemple. Mais de manière générale on peut représenter une courbe dans l'espace avec sa paramétrisation dans Asymptote ?
sa ? "ses" tu veux dire...
Un exemple :
http://asy.gmaths.net/forum/les-demandes-d-aide-f15/surface-p-v-t-d-un-corps-pur-t73.html?hilit=courbe#p505dont la partie de code qui t'intéresse est :
Code : Tout sélectionner
real x(real t) {return 1+cos(2pi*t);}
real y(real t) {return 1+sin(2pi*t);}
real z(real t) {return t;}
path3 p=graph(x,y,z,0,1,operator ..);
Infophile a écrit :Maintenant j'aimerais reproduire la figure Maple ci-dessous, vous avez dit que le
patchgrid était difficilement faisable avec Asymptote donc ? Parce que j'ai essayé avec des sphères pleines (centrées en

et de rayon

) et bien même avec
opacity je trouve que la mise en évidence des cercles n'est pas très claire, comment feriez-vous ?
Je ne comprends pas très bien ce que tu veux obtenir sur ta figure.
A propos du maillage :
pour une seule sphère... s'inspirer de l'exemple fig_ad07 de cette
page.
pour deux sphères... si tu veux une gestion des intersections avec le respect des traits continus et pointillés ce sera plus problèmatique.
Re: Cercles de Villarceau
Posté : lun. 10 mai 2010, 22:57
par Infophile
Oui par paramétrisation j'entendais celles vérifiées par les 3 coordonnées x,y,z. OK, et pour une équation implicite ? Par exemple celle du plan tangeant

.
En fait je ne suis pas obligé de respecter ce maillage, disons que c'était ce que j'avais trouvé de mieux sous Maple pour mettre en évidence les cercles vus comme intersection du tore avec ces sphères. Si vous aviez à les mettre en évidence que feriez-vous ? Par transparence ? J'avais essayé et je trouvais que pour une sphère encore ça passait mais les 2 ça faisait un peu "bazar".
Enfin une dernière chose : j'ai toujours ces raies noires sur mes .pdf ou .eps, mais pas lorsque je visualise via msdos : asy -v exemple.asy, donc n'y a-t-il pas possibilité de s'en sortir d'une manière ou d'une autre ? ou je serai obligé de changer de carte graphique ? (je possède une ATI Radeon Xpress 1250)
Merci beaucoup pour ces précieux conseils !