[Résolu] Comportement bizarre de surface

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] Comportement bizarre de surface

Messagepar dmalik » Mardi 10 Février 2009, 23:52

Lors de l'élaboration d'une figure 3D je me heurte à un comportement bizarre de la commande surface.
Soit un path3 que je colorie avec surface .
Voici un reste du code qui permettra de comprendre :

Code: Tout sélectionner
settings.outformat="pdf";
settings.prc=false;
import graph3;
import grid3;
import contour;
size(9cm,0);
size3(5cm,6cm,4cm,IgnoreAspect);

currentprojection=orthographic(5,5,100);
limits((1,0,0),(10,10,25));

//il ya a bien inversion x et y pour faire comme la source de l'exercice
xaxis3(scale(1.5)*Label("$y$",position=MidPoint,align=SE),YZEquals(1,0),OutTicks(Step=1));
yaxis3(scale(1.5)*Label("$x$",position=MidPoint,align=8X),XZEquals(0,0),OutTicks(Step=1,Label(align=X)));
zaxis3(scale(1.5)*Label("$z$",position=EndPoint,align=3N+E),Bounds(Min,Max),InTicks(Step=5,Label(align=Y)));

//plan z0;
real z0=5;
real k=2; //le pas est volontairement grand pour comprendre

//pour x=10 calcul de l'ordonnée y0
real y0=exp(z0/10);
//pour un meilleur repérage je nomme des points
dot(scale(1.5)*Label("A",align=Z), (10,5/(log(10)),5), purple);
dot(scale(1.5)*Label("B",align=Z), (0,10,5), purple);
dot(scale(1.5)*Label("C",align=Z), (10,0,5), purple);
dot(scale(1.5)*Label("D",align=Z), (y0,10,5), purple);
dot(scale(1.5)*Label("O",align=Z), (0,0,5), purple);

 path3 plan1;
 plan1=(0,0,z0)--(0,10,z0)--(y0,10,5)--(exp(z0/9.9),9.9,z0);
 
 int i=1;
 real xi;
 real yi;
     //plan1=plan1--(1.8,8.8,5)--(2.3,7.6,5)--(3.1,5.1,5)--(1.2,8.2,5);
       do {
     xi=10-k*i;
     dot(scale(1)*Label("",align=Z), (exp(z0/xi),10-k*i,z0), purple);
       plan1=plan1--(exp(z0/xi),10-k*i,z0);
       i=i+1;
       }
       while (xi>5/(log(10)));
       
  plan1=plan1--(10,5/(log(10)),5)--(10,0,z0)--cycle;
// Je trace le contour de ma surface !
draw(plan1,purple);
//Je colorie la surface plane   
draw(surface(plan1),yellow+opacity(.5));


Dès que je peux uploader une image je le ferais.
Mais la surface colorée dépasse les limites du path3 dans la partie "concave".
De fait je cherche à colorer la partie qui pourrait etre :
dans une feuille carrée, 1 coté =axe des y
l'axe des x est au milieu.
je trace une courbe log et je découpe et jette la partie en dessous de cette courbe.
Le papier qui me reste je le colorie.
La fonction surface colorie en dehors du papier le long de la fonction log !
J'espère m'être bien fait comprendre
où est l'erreur ?
Qu'est-ce qui m'a échappé ?
merci
daniel
Dernière édition par dmalik le Mercredi 11 Février 2009, 22:06, édité 1 fois.
dmalik
Déca-utilisateur
 
Messages: 18
Inscription: Dimanche 07 Octobre 2007, 21:28
Statut actuel: Lycée | Terminale ES

Publicité

Re: [asymptote] comportement bizarre de surface

Messagepar GMaths » Mercredi 11 Février 2009, 13:18

dmalik a écrit:J'espère m'être bien fait comprendre


mais alors... pas du tout en ce qui me concerne !
C'est du charabia pour moi, désolé.
Mais peut-être que d'autres auront compris ce que tu tentes de faire.
J'ai testé la figure... et ce que j'obtiens ne ressemble à rien.

Le mieux ce serait de dire ce que mathématiquement tu veux faire... sans évoquer Asymptote.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [asymptote] comportement bizarre de surface

Messagepar OG » Mercredi 11 Février 2009, 13:34

Bonjour

Je rejoins Gaëtan.

Une figure 3D (qui a l'air d'être plan) est dessinée mais je n'ai rien compris (il faut dire que faire grève est éprouvant). Concernant les surfaces hormis la possibilité de définir "à la main" une surface lisse/régulière le seul moyen actuel est la création via une fonction sur une grille (on peut tricher dans certain cas mais actuellement il n'y a pas de fonction asymptote qui permet de tracer une surface $f(x,y,z)$ $(x,y)$ décrivant un domaine) (il paraît que je dois travailler dessus, j'aurai du me taire un certain jour).

On peut à la main programmer un dessin de surfaces mais style carreau plan donc avec des angles.

O.G.
OG
Modérateur
 
Messages: 2278
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Asymptote] Comportement bizarre de surface

Messagepar dmalik » Mercredi 11 Février 2009, 21:35

Bon je recommence et je prend un exemple plus simple et puisque je peux je vais joindre les images !
Voici le code :

Code: Tout sélectionner
settings.outformat="pdf";
settings.prc=false;
import graph3;
size(0,0); unitsize(2cm);

currentprojection=orthographic(5,5,100);//pour avoir une vue de dessus qui permet de mieux comprendre
limits((1,0,0),(10,10,25));

triple O=(0,0,0);
triple A=(10,0,0);
triple B=(10,1,0);
triple C=(7,1,0);
triple D=(2,2,0);
triple E=(1,7,0);
triple F=(1,10,0);
triple G=(0,10,0);

path3 plan1;
 
       
  plan1=O--A--B--C--D--E--F--G--cycle;
// Je trace le contour de ma surface !
draw(plan1,purple);
//Je colorie la surface plane   
draw(surface(plan1),yellow+opacity(.5));


et voici le résultat :

test_surface.png
test_surface.png (10.05 Kio) Vu 573 fois


On voit bien que le jaune déborde de la ligne !

Je viens de trouver sur le forum asymptote la réponse à une question qui vient d'être postée aujourd'hui.
Quelle chance !
Il faut mettre

Code: Tout sélectionner
draw(planar(plan1),yellow+opacity(.5));


Merci !
dmalik
Déca-utilisateur
 
Messages: 18
Inscription: Dimanche 07 Octobre 2007, 21:28
Statut actuel: Lycée | Terminale ES


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é