Surface et 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.

Surface et couleurs

Messagepar maurice » Mardi 08 Février 2011, 12:46

Bonjour,

Je cherche un moyen de colorer une surface avec plusieurs couleurs. Il y a palette mais le problème est que je n'arrive pas à mettre les couleurs ou je veux;
J'ai bien essayé de construire une palette :

Code: Tout sélectionner
import grid3;
import contour;
import palette;
currentprojection=orthographic(-4,-4,50);
size(10cm);
size3(10cm,10cm,10cm,IgnoreAspect);

limits((0,0,0),(10,12,280));

real f(pair z) {return 2*z.x*(z.y+1);}
surface s=surface(f,(0,0), (10,12), nx=100, ny=100, Spline);
pen[] pal(){
       pen[] Palette;
             Palette=new pen[7];
             Palette[0]=red;
             Palette[1]=green;
             Palette[2]=blue;
             Palette[3]=yellow;
             Palette[4]=gray;
             Palette[5]=orange;
             Palette[6]=Cyan;
       return Palette;
}

draw(s,mean(palette(s.map(zpart),pal())) ,nolight);

real [] lignesdeniveau={40,80,120,160,200,240,280};
draw(lift(f,contour(f,(0,0),(10,12),lignesdeniveau)),1bp+black);

grid3(XYgrid, Step=1);
grid3(YXgrid, Step=1);
grid3(ZXgrid(Relative(1)), Step=20);
grid3(YZgrid(Relative(1)), Step=1);
grid3(XZgrid(Relative(1)), Step=1);
grid3(ZYgrid(Relative(1)), Step=20);

xaxis3(Label("$x$",MidPoint,align=-Z),
Bounds(Both,Min),OutTicks(Step=1,endlabel=false),p=blue);
yaxis3(Label("$y$",MidPoint,align=-Z),
Bounds(Both,Min),OutTicks(Step=2, step=1),p=red);
zaxis3(Label("$z$" ,MidPoint,align=-X),XYEquals(0,12),InTicks(Step=40, step=20),p=1bp+.5green);


Je voudrais que le changement de couleur se produise à chaque ligne de niveau ...

Si quelqu'un a une idée ?

Merci

Maurice.

Capture-1.png
ce que j'obtiens
Capture-1.png (20.9 Kio) Vu 1083 fois


Capture.png
ce que je voudrais
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

Publicité

Re: surface et couleurs

Messagepar GMaths » Mardi 08 Février 2011, 13:25

Tu as regardé les exemples ?

Il me semble que tu ne pourras faire guère mieux que dans cet exemple :

http://marris.org/asymptote/Surfaces_3D/index.html#fig_sa12_110109_surface

Je ne pense pas qu'il y ait eu des évolutions depuis qui permettent d'avoir une détection exacte du changement de couleur ; c'est toujours des carreaux que l'on colorie ou pas... donc on augmente n pourqu'ils soient petits et que cela fasse illusion, en mettant un gros trait sur la frontière.

Cela vaudrait le coup de reposer la question sur le forum officiel... pour les encourager à améliorer les choses à ce propos.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: surface et couleurs

Messagepar maurice » Mardi 08 Février 2011, 13:57

Bonjour et merci,
avec la ligne :
Code: Tout sélectionner
s.colors(palette(s.map(new real(triple v) {return find(lignesdeniveau > v.z);}),pal()));


j'obtiens la figure ci-contre. Ce qui est étonnant c'est que la couleur pal[0] est utilisée en dernier.
Il me reste à faire apparaitre le quadrillage.

Maurice

Capture-2.png
pas si mal ...
Capture-2.png (32.98 Kio) Vu 1077 fois
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: surface et couleurs

Messagepar rebouxo » Mardi 08 Février 2011, 15:37

Et en mettant opacity à 0.5 ?

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: surface et couleurs

Messagepar maurice » Mardi 08 Février 2011, 20:09

Bonsoir,

j'ai ajouté les points :

Code: Tout sélectionner
dot("$M$",(8,9,f((8,9))),N);
dot("$P$",(5,11,f((5,11))),N);
dot("$R$",(4,4,f((4,4))),N);


Et deux remarques (questions) me viennent à l'esprit :
1) Pour la position, seule N convient, sinon les labels sont sous la surface et cachés (au moins en partie)
2) UnFill ne travaille pas en 3D ?...

Merci

Maurice

PS : Je m'en vais essayer avec scale3()*unitsphere pour changer les dot
Capture-1.png
P entier R caché
Capture-1.png (21.43 Kio) Vu 1060 fois
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: surface et couleurs

Messagepar GMaths » Mardi 08 Février 2011, 20:40

1) Pour la position, seule N convient, sinon les labels sont sous la surface et cachés (au moins en partie)


Si tu veux aligner dans l'espace, X, Y, Z peuvent t'être utiles.

Tente ceci :
Code: Tout sélectionner
align=X+Y+Z


2) UnFill ne travaille pas en 3D ?...

sans avoir vérifié : de la 3D avec settings.render=0, si, cela doit fonctionner.

Mais sinon... que voudrais-tu que cela donne en prc ou opengl ?
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: surface et couleurs

Messagepar maurice » Mardi 08 Février 2011, 22:56

Bonsoir,

GMaths a écrit:
1) Pour la position, seule N convient, sinon les labels sont sous la surface et cachés (au moins en partie)


Si tu veux aligner dans l'espace, X, Y, Z peuvent t'être utiles.

Tente ceci :
Code: Tout sélectionner
align=X+Y+Z


Je vais tenter, merci.

GMaths a écrit:
2) UnFill ne travaille pas en 3D ?...

sans avoir vérifié : de la 3D avec settings.render=0, si, cela doit fonctionner.

Mais sinon... que voudrais-tu que cela donne en prc ou opengl ?


Je cherche juste à imiter la figure du premier post.

J'ai ajouté :

Code: Tout sélectionner
void pointblanc(string s, pair z, real f(pair z)) {
   draw(shift((z.x,z.y,f(z)))*scale(0.15,0.15,4)*unitsphere, white, nolight);
   label(s, (z.x,z.y,f(z)), 2*N);
}

pointblanc("$M$", (8,9), f);
pointblanc("$P$", (5,11), f);
pointblanc("$R$", (4,4), f);


Je pense qu'on peut améliorer tout ça et pouquoi pas de l'automatiser.
Je vais y réfléchir.

Voici ce que j'obtiens en pièce jointe. A comparer avec le modèle ... pas si mal ?

Maurice

Capture-2.png
pas si mal ?
Bac TES spé Asie2004
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


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités