Sphère

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.

Sphère

Messagepar rebouxo » Lundi 17 Octobre 2011, 22:57

L'an dernier j'avais grâce aux conseils avisés de ce forum merveilleux réussi à produit un modèle de sphère. Je reprends l'activité cette année et souhaite modifier quelques points. Et là badaboum, ma belle figure m'affiche une horreur. Entre temps rien n'a changé sauf ma version d'asymptote.

2d8996aa969ff5c784db1c7f2990342a.png

Code: Tout sélectionner
import solids;


size(10cm,0);
currentprojection=orthographic((100,25,25));

real r=6;// rayon de la sphere
real e=0.1;// épaisseur des cylindres
real h1 = 1,h2=3, h3=5 ;// hauteurs des cylindres.

revolution cylindre(triple c=O, real r, real h, triple axis=Z)
{
triple C=c+r*perp(axis);
axis=h*unit(axis);
return revolution(c,c--C--C+axis--c+axis,axis);
}

void paralleles(real rayon, real hauteur, real epaisseur=e, pen p=lightblue){
revolution ParalleleN=cylindre((0,0,hauteur),rayon,epaisseur,Z);
revolution ParalleleS=cylindre((0,0,-hauteur),rayon,epaisseur,Z);
draw(surface(ParalleleS),p);
draw(surface(ParalleleN),p);
}

// méridiens
revolution Meridien0 =cylindre((0,0,0),r,e,Y) ;
revolution Meridien60 =cylindre((0,0,0),r,e,(sqrt(3)/2,1/2,0)) ;
revolution Meridien120 =cylindre((0,0,0),r,e,(-sqrt(3)/2,1/2,0)) ;

draw(surface(Meridien0),yellow) ;
draw(surface(Meridien60),yellow) ;
draw(surface(Meridien120),yellow) ;


// Parallèle
paralleles(rayon=sqrt(r^2-h1^2),hauteur=h1-e/2);
paralleles(rayon=sqrt(r^2-h2^2),hauteur=h2-e/2);
paralleles(rayon=sqrt(r^2-h3^2),hauteur=h3-e/2);


J'ai l'image ci-dessus et ce n'est pas du tout ce qui m'intéresse. Si quelqu'un avait une idée.

Deuxième chose, je souhaite faire apparaître les tropiques et les cercles polaires. J'ai donc repris un code sur le site de Gaëtan
Code: Tout sélectionner

    import solids;

    size(6cm,0);

    currentprojection=orthographic(3,2,2);
    currentlight=nolight;
   
    nslice=4*nslice;
    revolution b=sphere(O,1);
    draw(surface(b), paleblue+opacity(0.5));
   
    skeleton s;
   
    b.transverse(s,reltime(b.g,0.719));
    // equateur
    b.transverse(s,reltime(b.g,0.5));
    // Cercle polaire Nord
    b.transverse(s,reltime(b.g,0.946));
    draw(s.transverse.back,linetype("8 8",8));
    draw(s.transverse.front);
   



Bon, je pensais m'en sortir avec un peu de trigo et le paramètre reltime, mais ben non. Pour info, les tropiques sont au parallèles 26° et les cercles polaires au parallèles 63°. Donc je voudrais des cercles à ces hauteurs.

Voilà, asymptote me fais souffrir.

Merci pour vos lumières (qui malheureusement ne me permette pas de me diriger comme je veux)
Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Sphère

Messagepar maurice » Mardi 18 Octobre 2011, 01:52

Bonsoir voila ce que j'obtiens chez moi avec tes codes ...

sphere_reb.png
1er code
sphere_reb.png (11.7 Kio) Vu 1099 fois



sphere_reb2.png
2e code
sphere_reb2.png (2.18 Kio) Vu 1099 fois



Ce n'est pas ce que tu veux ?

maurice

PS : pour la sphère avec parallèles, il y a un exemple de Chellier dans le démarrage rapide
PS2 : je suis avec Asymptote version 2.13 avec la compilation :
Code: Tout sélectionner
asy -V -f png sphere_reb*.asy

sans le -V dans le 1er cas, je n'obtiens pas du tout la même chose...
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: Sphère

Messagepar rebouxo » Mardi 18 Octobre 2011, 07:15

Merci pour ta réponse Maurice.

Oui, c'est ce que je souhaiterais avoir. Mais, comme tu le vois, même sur mathematex cela ne passe pas.
Code: Tout sélectionner
    asy -V -f png sphere_reb*.asy


edit 3 :

Je me réponds : -V pour voir la figure (rien n'apparaît ?) et -f pour spécifier le format d'export. J'ai bien la figure en eps (pour ce qui me concerne, mais ce n'est pas la bonne).

tu peux m'expliquer ce que cela fait ?
png je vois :mrgreen: . Mais -V et -f qu'est-ce que cela fait ? D'autre part ma version de TeXlive est celle de TeXlive2010 (donc la version 2.13).

Edit 1 :
Chez moi cela ne fonctionne pas :
le message d'erreur : undefined control sequence : \ASYalign dans l'image 1, donc la sphère.

Edit 2 :
bon, retour. Cela fonctionne, mais l'image fixe est toujours chaotique par contre le prc est bon. Reste à savoir pourquoi l'image fixe est toujours aussi moche.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar GMaths » Mardi 18 Octobre 2011, 11:45

Voilà ce que j'obtiens, pour le premier code, en compilant avec
Code: Tout sélectionner
asy  -f pdf  -tex pdflatex -render=4 nomdufichier

asy_2011_10_18_v1.pdf
Version PRC+(PNG par dessus pour les lecteurs de pdf autres qu'Adobe qui ne savent pas lire le PRC)
(129.83 Kio) Téléchargé 110 fois


On obtient la même qualité d'image statique, sans PRC, avec :
Code: Tout sélectionner
asy  -f pdf  -tex pdflatex -render=4 -noprc nomdufichier

ou pour un png :
Code: Tout sélectionner
asy  -f png  -tex pdflatex -render=4 nomdufichier


Le truc très moche qui est obtenu sur le forum est normal... puisque c'est compilé avec -render=0.
Toute compilation avec render=0 d'une scène 3D... va donner lieu à un empilement des objets de la scène dans l'ordre de leur apparition dans le script.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar GMaths » Mardi 18 Octobre 2011, 12:00

Pour la deuxième demande :

3addfd44bc86219d531992191986734b.png

Code: Tout sélectionner
import solids;
size(6cm,0);
currentprojection=orthographic(3,2,2);
currentlight=nolight;

nslice=4*nslice;
revolution b=sphere(O,1);
draw(surface(b), paleblue+opacity(0.5));

skeleton s;

real[] x={(90-63)/180,
(90-26)/180,
90/180,
(90+26)/180,
(90+63)/180};
for (real k : x) b.transverse(s,reltime(b.g,k));

draw(s.transverse.back,linetype("8 8",8));
draw(s.transverse.front);


Code: Tout sélectionner
asy  -f pdf  -tex pdflatex -render=4 nomdufichier


asy_2011_10_18_v2.pdf
(1.65 Mio) Téléchargé 105 fois
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar rebouxo » Mardi 18 Octobre 2011, 16:06

OK, merci. Je n'ai pas mon fichier avec moi, je ne peux pas vérifier que j'ai mis (ou pas) l'option -render=0. Vous saurez cela se soir, après la réunion parent-prof. En tous les cas cela explique le comportement dans acrobat reader.

A quoi correspond le reltime ?

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar GMaths » Mardi 18 Octobre 2011, 16:18

rebouxo a écrit:A quoi correspond le reltime ?


Les exemples à comparer sont celui-là et celui-ci.

Dans les deux cas, on trace des cercles qui donnent l'impression de tronçonner la demi-boule supérieure en 5 tranches :
  • dans le second, de telle manière que les 5 tranches aient toutes la même épaisseur : cela a nécessité de bidouiller en utilisant arccos conjointement avec reltime ;
  • dans le premier, avec seulement reltime, les tranches sont telles que c'est le quart de cercle qui est divisé en 5 arcs de même longueur, ce qui à revient à avoir 5 angles au centre égaux à 18°.
Dernière édition par GMaths le Mardi 18 Octobre 2011, 16:50, édité 2 fois.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar GMaths » Mardi 18 Octobre 2011, 16:47

Explication complémentaire sur real reltime(path p, real l);

http://www.marris.org/asymptote/Lignes/index.html#fig_tc01_010808_reltime

Dans le cas de l'exemple de la boule, le path est boule.g : c'est à dire le demi-cercle générateur de la sphère par rotation.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar rebouxo » Mercredi 19 Octobre 2011, 07:53

Je suis content, j'en suis arrivé aux même formule que toi.

Merci Gaëtan et Maurice.

EDIT 1 : dès que je passe l'option -render=1 (ou 2, 4) je me prends un magnifique :
runtime to support onscreen rendering, please install glut library etc...

Autrement dit, je peux point avoir d'image correcte de la sphère et de ces parallèles. Scrongneugneu.

Ce qui est bizarre c'est que la première image (celle en bleu ici) passe sans problème. Mais pas la deuxième.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Sphère

Messagepar GMaths » Mercredi 19 Octobre 2011, 09:33

rebouxo a écrit:runtime to support onscreen rendering, please install glut library


Recherche (en n'oubliant par les : après runtime) l'expression

Code: Tout sélectionner
runtime: to support onscreen rendering, please install glut library

dans cette page : http://sourceforge.net/projects/asymptote/forums/forum/409349/topic/4578375

Tu te sentiras moins seul.

J'ai survolé les réponses : pas sûr que le problème ait été réglé malgré les conseils du boss jcbowman.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité