[Résolu] Sphère et lignes de niveaux en couleurs

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.

[Résolu] Sphère et lignes de niveaux en couleurs

Messagepar Arnaud » Dimanche 05 Février 2012, 17:20

Bonjour,

En plein dans les surfaces, j'ai un soucis pour dessiner la plus simple, le reste ayant été réussi grâce aux nombreux exemples et documentations des intervenants d'ici. J'aimerais bêtement dessiner une sphère avec les lignes de niveaux en couleurs, comme ici : http://asymptote.sourceforge.net/gallery/3D%20graphs/
Aucun problème pour le paraboloïde ou le paraboloïde hyperbolique.
Pour une demi-sphère, c'est facile, il suffit de passer par une fonction de deux variables et de "mapper" l'arc-en-ciel selon l'axe z :

Code: Tout sélectionner
real f(pair z) {return sqrt(1-z.x^2-z.y^2);}
surface s=surface(f, (-1,-1), (1,1),35,Spline);

draw(s,surfacepen=mean(palette(s.map(zpart),Rainbow())),meshpen=0.7bp+black);


Si je décide de faire deux demi-sphères, la jonction des couleurs n'est pas cohérente.

Si je définis la sphère à l'aide du module solids, via une révolution, je n'arrive pas à lui appliquer la palette de couleurs.

Une idée ?
Arnaud

Un peu d'info - Pyromaths
LaTeX - Exemples de formules LaTeX

Pas d'aide en MP (non plus)
Arnaud
Modérateur
 
Messages: 7115
Inscription: Lundi 28 Août 2006, 12:18
Localisation: Allemagne
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Sphère et lignes de niveaux en couleurs

Messagepar GMaths » Dimanche 05 Février 2012, 18:08

Quelque chose comme cela :
Code: Tout sélectionner
import graph3;
import palette;
size(5cm);
currentlight=nolight;
triple f(pair t) {
    real theta=t.x;
    real phi=t.y;
    real x=cos(phi)*cos(theta);
    real y=cos(phi)*sin(theta);
    real z=sin(phi);
    return (x,y,z);
}
surface s=surface(f,(-pi,-pi/2),(pi,pi/2),50,50);
draw(s,surfacepen=mean(palette(s.map(zpart),Rainbow())),
       meshpen=0.5bp+black);
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Sphère et lignes de niveaux en couleurs

Messagepar Arnaud » Dimanche 05 Février 2012, 18:14

Nickel, je n'avais pas pensé à la forme paramétrée, merci ;)

Là je souffre à représenter le paraboloïde hyperbolique en tant que surface réglée, c'est-à-dire avec pleins de droites dedans, mais le problème ne vient pas d'asymptote, juste que j'ai la flemme de calculer :D

301b25281c728ebd80183ad8ab03564d.png

Code: Tout sélectionner
import grid3;
currentprojection=orthographic(0.5,1,1);
currentlight=(0.5,1,3);

size(5cm);
defaultrender.merge=true;

real f(pair z) {return z.x^2-z.y^2;}
surface s=surface(f, (-1,-1), (1,1),Spline);

draw(s,lightgreen+opacity(0.70));

draw((1,1,0)--(-1,-1,0),red);
draw((1,-1,0)--(-1,1,0),red);
draw((-0.5,1,-0.75)--(1,-0.5,0.75),red);
draw((-1,0.5,0.75)--(0.5,-1,-0.75),red);
draw((1,0,1)--(0,1,-1),red);
draw((-0.3,1,-0.91)--(1,-0.3,0.91),red);
Arnaud

Un peu d'info - Pyromaths
LaTeX - Exemples de formules LaTeX

Pas d'aide en MP (non plus)
Arnaud
Modérateur
 
Messages: 7115
Inscription: Lundi 28 Août 2006, 12:18
Localisation: Allemagne
Statut actuel: Actif et salarié | Enseignant

Re: Sphère et lignes de niveaux en couleurs

Messagepar GMaths » Dimanche 05 Février 2012, 18:35

Arnaud a écrit:juste que j'ai la flemme de calculer :D


Il faut alors chercher le paramétrage qui va bien : http://www.mathcurve.com/surfaces/paraboloidhyperbolic/paraboloidhyperbolic.shtml

Et simplement modifier l'exemple précédent :

Code: Tout sélectionner
import graph3;
import palette;
size(5cm);
currentlight=nolight;
currentprojection=orthographic(1.8,2.5,1.4);
real a=1, b=1, h=1;
triple f(pair t) {
    real u=t.x;
    real v=t.y;
    real x=a*(u+v)/2;
    real y=b*(u-v)/2;
    real z=h*u*v;
    return (x,y,z);
}
surface s=surface(f,(-1,-1),(1,1),20,20);
draw(s,surfacepen=mean(palette(s.map(zpart),Rainbow())),
       meshpen=0.5bp+black);


Image
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Sphère et lignes de niveaux en couleurs

Messagepar Arnaud » Dimanche 05 Février 2012, 19:14

C'est effectivement le paramétrage que j'ai utilisé, grâce au même site, mais je ne voulais que quelques droites.
Arnaud

Un peu d'info - Pyromaths
LaTeX - Exemples de formules LaTeX

Pas d'aide en MP (non plus)
Arnaud
Modérateur
 
Messages: 7115
Inscription: Lundi 28 Août 2006, 12:18
Localisation: Allemagne
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Sphère et lignes de niveaux en couleurs

Messagepar GMaths » Dimanche 05 Février 2012, 19:53

Arnaud a écrit:... mais je ne voulais que quelques droites.


Image


Code: Tout sélectionner
import graph3;
import palette;
size(5cm);
currentlight=nolight;
currentprojection=orthographic(1.8,2.5,1.4);
real a=1, b=1, h=1;
triple f(pair t) {
    real u=t.x;
    real v=t.y;
    real x=a*(u+v)/2;
    real y=b*(u-v)/2;
    real z=h*u*v;
    return (x,y,z);
}
surface s=surface(f,(-.8,-.8),(.8,.8),50,50,Spline);
draw(s,surfacepen=mean(palette(s.map(zpart),Rainbow())));

int lig[]={3,5,9};
for(int k:lig){
  draw(s.uequals(k),.5bp+.5blue);
  draw(s.vequals(k),.5bp+.5green);
}
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Sphère et lignes de niveaux en couleurs

Messagepar Arnaud » Dimanche 05 Février 2012, 20:21

:D
Arnaud

Un peu d'info - Pyromaths
LaTeX - Exemples de formules LaTeX

Pas d'aide en MP (non plus)
Arnaud
Modérateur
 
Messages: 7115
Inscription: Lundi 28 Août 2006, 12:18
Localisation: Allemagne
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é