Intersections de quadriques...

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Intersections de quadriques...

Message non lu par GM » lun. 29 mars 2010, 09:09

L'exemple précédent avec une petite boucle supplémentaire.
intersection_plan_surface_3.png
intersection_plan_surface_3.png (40.39 Kio) Vu 8893 fois
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Intersections de quadriques...

Message non lu par GM » lun. 29 mars 2010, 11:30

Comme il était dit "deux quadriques"... je me devais de proposer un exemple illustrant la méthode précédente avec deux quadriques.

Comme je suis assez content du résultat, je l'ai mis ici :
http://asy.gmaths.net/forum/geometrie-de-l-espace-f9/intersection-sphere-cone-oblique-t48.html
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

DK
Messages : 57
Enregistré le : ven. 26 mars 2010, 17:23

Re: Intersections de quadriques...

Message non lu par DK » mar. 30 mars 2010, 23:18

GM a écrit :Serait-il possible de trouver une image sur le net d'un premier exemple simple ?

Oui, je vais déposer un essai de ce que je cherche à faire apparaître.

DK a écrit :(voir T.S. Davies, 1834, Transaction of the Royal Society of Edimburg, Volume 12 ; et aussi W.A. Cadell, 1818, Volume 8, même journal.).

Je viens de feuilleter les 600 pages http://books.google.fr/books?id=I_UQAAAAIAAJ&dq=hect%C3%A9mor%C3%A9ale&source=gbs_navlinks_s
Je n'ai pas tout compris. :mrgreen:[/quote]

Pour l'article de Davies, il s'agit de "An Inquery into the Geometrical aspect on the Hour-lines of the antique Sun-dials". Cet article est plutôt "hard" et donc de très haut niveau en gnomonique. Cet auteur se propose de démontrer mathématiquement que les lignes horaires temporaires ne sont pas des droites, ni des arcs de grands cercles sur la sphère céleste.CE qui résous une vielle problématique qui a mobilisé plus d'un mathméticien de l'antiquité à la renaissance. Les lignes horaires temporaires sont les heures utilisées dans les cadrans solaires antiques -- heures qui sont formées par la division de la durée du jours en 12 parties égales. (cadrans antiques = cadrans trouvés dans les fouilles archéologiques - il en exste plus de 300 spécimens). Les courbes tracées sur la sphère céleste sont des sinusoïdes sphériques, courbes étudiées par Chasles en 1875 (seulement), et donc encore inconnues au temps de Davies. Sur un cadran solaire plan, elles sont des courbes en épi (ou courbes d'Aubry - 1890). Le tracé réel des lignes temporaires entre les courbes solsticiales n'est vraiment connu que depuis à peine 100 ans..., mais étaient approximativement tracés par les grecs de l'antiquité : sur un plan, ils les assimilaient à des droites (en partie à cause de la faible latitude sous laquelle ils résidaient).

On peut "voir" le tracé de ces lignes d'heures sur la sphère comme étant engendré par l'intersection de cette sphère avec une sorte de cône ondulé appelé surface hectémoréale (en grec, hectémorie = 6 parties). Et de la même façon, pour un tracé sur une surface plane (cadran solaire ordinaire), elles peuvent être vues comme l'intersection de cette surface "ondulée" avec le plan du cadran. C'est ainsi que m'est venu cette question de faire apparaître la trace de l'intersection entre deux surfaces.

L'autre raison, source de cette problématique, et de pouvoir tracer sur la surface d'un cône, d'un hyperboloïde à deux nappes, etc..., un cadran solaire avec ces arcs diurnes et ces lignes horaires, sans passer par l'expression des équations paramétriques de ces lignes (ce qui serait fastidieux et limitatif si on change de surface tout en restant dans le domaine des quadriques). Je signale que je peux assez facilement obtenir les coordonnées point par point des lignes horaires et des arcs-diurnes pour des cadrans qui sont des surfaces du second degré, mais que c'est très complexe pour les lignes temporaires sur de telles surfaces ! alors que je sais qu'il suffit de faire apparaître l'intersection de la surface hectémoréale avec la surface du cadran ... facile à dire, certes, mais il n'en est rien algébriquement parlant ! Voilà pourquoi asymptote m'avait attiré (et m'attire toujours en tant qu'enseignant)...

DK
Messages : 57
Enregistré le : ven. 26 mars 2010, 17:23

Re: Intersections de quadriques...

Message non lu par DK » mar. 30 mars 2010, 23:24

En effet, c'est assez intéressant et bien réussi.
Cela me fait penser que pour un cadran solaire, les lignes d"heures sont formées par l'intersection entre un plan horaire (plan contenant le soleil et l'axe des pôles qui lui est incliné sur l'horizon d'un angle égal à la latitude du lieu) et la surface du cadran.

DK
Messages : 57
Enregistré le : ven. 26 mars 2010, 17:23

Re: Intersections de quadriques...

Message non lu par DK » mar. 30 mars 2010, 23:41

DK a écrit :
GM a écrit :Serait-il possible de trouver une image sur le net d'un premier exemple simple ?

Oui, je vais déposer un essai de ce que je cherche à faire apparaître.

Voici un exemple de ce que j'ai essayé de faire :

Code : Tout sélectionner

//
//  Work  = Lycée Professionnel Pasteur
//      25 rue du Professeur Delvalle - 06000, Nice.
//   date  = 7 février 2010.
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Objet = Gnomonique théorique
// Lignes horaires Temporaire en usage dans l'antiquité.
//
// Représentation des différentes SURFACES HECTEMOREALES. ("Cône Ondulé")
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
settings.outformat="pdf";
settings.prc=true; // pour figure 3D manipulable à la souris sous Adobe Reader >7.

//Appel des fichiers de macros.

import geoespace;
import solids;
import three;
import math;
import graph3;
import contour3;

usepackage("relsize");//règle la taille du texte...
import graph3;

settings.tex="pdflatex";

unitsize(1cm);
size(10cm,0cm,true);


currentprojection=orthographic(5,3,1);
//currentlight=(2,2,1);

real a=0.75, r=3/2;
limits(-a*(r,r,r),a*(r,r,r));


//~~~~~~~~~ CONSTRUCTIONS des SURFACES HECTEMOREALES ~~~~~~~~~

//latitude géographique du lieu du cadran solaire
// **********************************************************************
   real phi=(43+43/60); // Nice, bien sur...      MODIFIABLE         *   <----
// **********************************************************************

real R=1; // Rayon de la sphère                        <----

real K=- cot(phi*pi/180);

// **********************************************************************
   real k=2 ,  n=6/k ; // 4ieme heure temporaire (n=6/k)    MODIFIABLE    *   <----
// **********************************************************************

// CONSTRUCTION des sinusoïdes sphériques - (voir aussi Chasles)

real x(real t) {return R*cos(t)/sqrt(1+(K*cos(n*t))^2)       ;}
real y(real t) {return R*sin(t)/sqrt(1+(K*cos(n*t))^2)       ;}
real z(real t) {return R*K*cos(n*t)/sqrt(1+(K*cos(n*t))^2)    ;}

path3 ps=graph(x,y,z,0,2*k*pi, operator ..)--cycle; // profil pour créer la surface hectémoréale.
draw(ps,1/2bp+1.5red);

pen color1=green+opacity(0.5);
//surface hectemoreale=surface(ps);
//draw(hectemoreale, lightblue+opacity(0.9));

// CONSTRUCTION des surfaces hectémoréales.

//real f(real x, real y, real z) {return (y^2-x^2)/sqrt(x^2+y^2+0.00001)*K - z ;}    // k=3 -- IIIe ligne temporaire
real f(real x, real y, real z) {return x*K*(3*y^2-x^2)/(x^2+y^2+0.00001) - z ;}      // k=2 -- IVe ligne temporaire
//real f(real x, real y, real z) {return K*(y^6-x^6+15*x^2*y^2*(x^2-y^2))/(sqrt(x^2+y^2+0.00001))^5 - z ;}   // k=1 -- Ve ligne temporaire
//real f(real x, real y, real z) {return x*(x^2-3*y^2)/sqrt(x^2+y^2+0.00001) + x^2+y^2 - z^2/k^2 ;}      // k=4 -- IIe ligne temporaire
//real f(real x, real y, real z) {return --------;}      // k=5 -- Ier ligne temporaire


draw( surface( contour3(f, (-2,-2,-2), (2,2,2), 15) ), lightblue+opacity(0.9) );

// **********************************************************************
surface Objet=scale3(.7)*unitsphere;   // La Sphère pour commencer.
draw(Objet,lightgreen);
// **********************************************************************

//~~~~~~~~~ Quelques décors ~~~~~~~~~
// Axes du repère.
xaxis3("$x$",Arrow3);
yaxis3("$y$",Arrow3);
zaxis3("$z$",Arrow3);

/*
// Equateur Céleste (pour information sur la sphère Céleste...)
path3 equateur=circle((0,0,0), 0.99R, Z);
draw(equateur,0.75bp+dashed+3blue);

// Point d'intersection du méridien avec la surface hectémoréale...
triple departSud=(x(0),y(0),z(0));
dot(departSud,4bp+3yellow);


// On définit les points d'intersection de la surface Hectémoréale et de l'équateur...
triple[] points=intersectionpoints(equateur,hectemoreale);
// ... que l'on place en rouge.
dot(points,4bp+red);

// Pôle Nord Céleste
triple nord=(0,0,R);
dot(nord,4bp+black);

// arc méridien
//path3 meridien=arc((0,0,0), R, 0, 0, (90+90-phi), 0);
//draw(meridien,2bp+red);


shipout(bbox(.5cm));//pour laisser une marge sur le dessin.

*/

----------
La surface hectémoréale est donc tracée, mais je ne sais pas comment faire pour son intersection avec une sphère ou autre type de surface (plan compris)...

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Intersections de quadriques...

Message non lu par GM » mer. 31 mars 2010, 15:28

Il semble qu'il y ait du tri à faire dans les import.
Je rappelle que :
  • graph3 importe graph et three ;
  • solids importe three et graph3.
  • contour3 importe three.
Je ne comprends pas ce que geoespace vient faire dans l'exemple.

Autre bizarrerie : unitsize et size !?!


Sinon... si ta fameuse surface (ce que tu appelles surface hectémoréale, et que j'appellerai SURFACE1) peut-être considérée comme un ensemble de path3 joignant le point (0,0,0) à un des points de ce que tu as appelé profil (en bleu ci-dessous), on doit pouvoir chercher l'intersection de chacun de ces path3 avec l'autre surface (la SURFACE2 : sphère, plan, etc...)... et les relier.

Figure asymptote de0936f830cded8a4c7a52a173243a8a
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. import math;
  2. import graph3;
  3. size(10cm,0cm,true);
  4. currentprojection=orthographic(5,5,3);
  5. real a=0.75, r=3/2;
  6. limits(-a*(r,r,r),a*(r,r,r));
  7. real phi=(43+43/60);
  8. real R=1;
  9. real K=-cot(phi*pi/180);
  10. real k=2, n=6/k ;
  11.  
  12. real x(real t) {return R*cos(t)/sqrt(1+(K*cos(n*t))^2) ;}
  13. real y(real t) {return R*sin(t)/sqrt(1+(K*cos(n*t))^2) ;}
  14. real z(real t) {return R*K*cos(n*t)/sqrt(1+(K*cos(n*t))^2) ;}
  15.  
  16. path3 ps=graph(x,y,z,0,2*k*pi,operator ..)--cycle; // profil pour créer la surface hectémoréale.
  17.  
  18. int np=300;
  19. path3 p;
  20. for(int i=1; i<np; ++i){
  21. draw((0,0,0)--relpoint(ps,i/np),red);
  22. p=p..relpoint(ps,i/np);
  23. }
  24. draw(p--cycle,blue);
  25.  


--------------------------

Pour le cas particulier d'une SURFACE2 qui serait une sphère (verte ci-dessous) de centre (0,0,0) et de rayon r (avec r<R), ne suffit-il pas, pour obtenir la courbe d'intersection (en rouge ci-dessous) de tracer ce que tu as appelé profil pour la valeur R=r ?

surface_hectemoreale.png
surface_hectemoreale.png (92.96 Kio) Vu 8864 fois
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Intersections de quadriques...

Message non lu par GM » mer. 31 mars 2010, 18:34

Message précédent modifié... dans un souci de clarté.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

DK
Messages : 57
Enregistré le : ven. 26 mars 2010, 17:23

Re: Intersections de quadriques...

Message non lu par DK » mer. 31 mars 2010, 19:47

Bonsoir,
Superbe ce que l'on obtient ! C'est la réponse à mon "petit" problème. Pour les import, en effet, il y a du souci ; je ne maîtrise pas la programmation et voilà donc ce que cela donne, parfois des choses redondantes (et jugées stupides). En tout cas, merci pour votre aide et patience et indulgence (dans la lecture du code !). Etant autodidacte, je lis du code, je le copie et j'essaye (il y sûrement mieux à faire ; réfléchir par exemple; mais cela va venir!).

Reste maintenant à placer ce genre de cône dont l'axe est sur l'axe des pôle de la Terre, de placer un plan tangent à la sphère (le plan du cadran) centré sur l'extrémité d'un gnomon droit (perpendiculaire au plan) et de faire tracer les intersections de ce cône avec le plan tangent à la sphère! Les courbes obtenues seront les lignes horaires temporaires utilisée dans l'antiquité.
Juste pour l'histoire, la figure obtenue que j'ai essayé de reproduire est celle que W.A. Cadell propose dans son article (en 1818!), mais ni lui ni Davies n'ont proposé de tracé des hectémories sur un plan ou sur la sphère! Il fallut attendre Drecker (1925) pour combler ce manque. Et depuis, je n'ai pas trouvé d'autres études ! Comme je prépare un article pour la revue Cadran-Info de la Commission des Cadrans Solaires de la SAF (Société Astronomique de France), j'intègrerais des figures obtenues avec Asymptote, et je ne manquerais pas de vous citer, vous et votre site web ! pour les précieuses aides.
Je joindrais les figures que j'aurai réussi à créer avec asymptote, si vous le jugez opportun, car bien entendu ce n'est pas fini.

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1512
Enregistré le : dim. 7 mars 2010, 14:50

Re: Intersections de quadriques...

Message non lu par GM » mer. 31 mars 2010, 21:10

DK a écrit :Bonsoir,
Superbe ce que l'on obtient !

sur ce coup là, je n'ai presque rien fait... à part supprimer beaucoup de choses dans ton code original :) et j'ai tracé la sinusoïde sphérique avec le bon R ! Je n'ai même pas eu à me servir du faisceau de segments rouges de la figure précédente.

DK a écrit :Reste maintenant à placer ce genre de cône dont l'axe est sur l'axe des pôle de la Terre, de placer un plan tangent à la sphère (le plan du cadran) centré sur l'extrémité d'un gnomon droit (perpendiculaire au plan) et de faire tracer les intersections de ce cône avec le plan tangent à la sphère! Les courbes obtenues seront les lignes horaires temporaires utilisée dans l'antiquité.

Peut-être un petit dessin joint (réalisé manuellement et scanné) pour permettre de mieux comprendre ? :roll:
(car je n'ai personnellement pas encore tout compris de la figure à obtenir... sinon j'aurais déjà fait une proposition complète ;-)).
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

DK
Messages : 57
Enregistré le : ven. 26 mars 2010, 17:23

Re: Intersections de quadriques...

Message non lu par DK » jeu. 1 avr. 2010, 19:16

En fait j'ai tracé la sinusoïde sur la sphère mais ce que je voudrais c'est bien sûr la tracer comme étant l'intersection de cette surface conique ondulé avec la sphère. Donc bien sur si R=r, la sinusoide se trouve sur la surface et du coup plus la peine de tracer le cône ondulé.
Donc votre idée de faire apparaître les segments générateurs du cône est bonne, et il faut ensuite tracer leur intersection avec la sphère pour faire apparaître la fameuse sinusoïde. L'autre exemple que vous avez créé avec la sphère et le cône oblique devrait me permettre d'arriver à faire pareil avec mon cône ondulé et la sphère ou autre objet plan par exemple... Voyons voir si j'y arrive, sachant peu programmer correctement...

Pour en revenir aux cadrans solaires, il est fort à parier que les grecs de l'antiquité ne soupçonnaient pas la complexité de la chose ! Mais en tout cas ils ont laissé de beaux résultats de cadran sur des solides de révolution (cône, sphère, cylindre), parce que sont les seuls objets qui optimisent l'usage du cadran solaire (du lever au coucher du soleil, chaque jour), contrairement aux cadrans verticaux plans.

A bientôt.

Répondre