Amélioration code

N'oubliez pas de consulter les sujets avant de poser votre question, merci.

Amélioration code

Messagepar Woodoo7 » 30 Mai 2013 23:29

Bonsoir,

j'ai fait un graphique dont voici le résultat:

Image

C'est ce que je voulais, mais par contre le code... J'imagine qu'il y a un moyen un peu plus rapide que moi pour arriver au même résultat:
Code: Tout sélectionner
[
 Marges(0,0,0,0), view(-5, 5, -0.5,1.5),
 background(full, white),
 Arrows:=1, Axes(0, 2+i), Arrows:=0,
 Width:=12, Color:=darkgreen,
 tMin:=-5, tMax:=-2,
 Cartesienne(0),
 tMin:=2, tMax:=2,
 Cartesienne(0),
 tMin:=-1, tMax:=1,
 Cartesienne(1),
 tMin:=-2, tMax:=-1,
 Cartesienne(1-(exp((-1/(abs(x)-1)))/(exp((-1/(abs(x)-1))) + exp((1/(abs(x)-2)))))),
 tMin:=1, tMax:=2,
 Cartesienne(1-(exp((-1/(abs(x)-1)))/(exp((-1/(abs(x)-1))) + exp((1/(abs(x)-2)))))),
 tMin:=2, tMax:=5,
 Cartesienne(0)
]


Je prend toute suggestion d'amélioration! :D . Bonne soirée!
Woodoo7
 
Messages: 24
Inscription: 02 Nov 2012 23:25

Re: Amélioration code

Messagepar Joffrey » 31 Mai 2013 22:46

Bonsoir,

Moi j'aurais fait quelque chose comme ça :
Code: Tout sélectionner
Marges(0,0,0,0), view(-5, 5, -0.5,1.5),
Arrows:=1, Axes(0, 2+i), Arrows:=0,
Width:=12, Color:=darkgreen,
NewMac("f","[
if %1<-2 then
   0
elif -2<=%1 And %1<-1 then
     1-(exp((-1/(abs(%1)-1)))/(exp((-1/(abs(%1)-1))) + exp((1/(abs(%1)-2)))))
elif -1<=%1 And %1<1 then
     1
elif 1<=%1 And %1<2 then
     1-(exp((-1/(abs(%1)-1)))/(exp((-1/(abs(%1)-1))) + exp((1/(abs(%1)-2)))))
elif 2<=%1 And %1<5 then
     0
fi]"),
tMin:=Xmin, tMax:=Xmax,
Cartesienne(f(x))
L'homme en noir fuyait à travers le désert, et le Pistoléro le suivait ...
Joffrey
 
Messages: 287
Inscription: 16 Juil 2009 17:05
Localisation: Vichy

Re: Amélioration code

Messagepar P.Fradin » 31 Mai 2013 23:39

Bonsoir,

En reprenant l'idée de Joffrey, je propose:
Code: Tout sélectionner
    Marges(0,0,0,0), view(-5, 5, -0.5,1.5),
    Arrows:=1, Axes(0, 2+i), Arrows:=0,
    Width:=12, Color:=darkgreen,
    NewMac("f","[
    if %1<-2 then
       0
    elif  %1<-1 then
         1-(exp((-1/(abs(%1)-1)))/(exp((-1/(abs(%1)-1))) + exp((1/(abs(%1)-2)))))
    elif  %1<1 then
         1
    elif  %1<2 then
         1-(exp((-1/(abs(%1)-1)))/(exp((-1/(abs(%1)-1))) + exp((1/(abs(%1)-2)))))
    elif %1<5 then
         0
    fi]"),
    tMin:=Xmin, tMax:=Xmax,
    Cartesienne(f(x))
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: Amélioration code

Messagepar Woodoo7 » 02 Juin 2013 11:10

Bonjour,

Merci beaucoup pour vos réponses! C'est en effet plus joli comme ça! :).

Une autre question: j'aimerais définir $y^2 = x^2 - 1$.

Pour l'instant j'ai ce code:
Code: Tout sélectionner
[
 Marges(0,0,0,0), view(-0.5, 3, -3.5,3.5),
 Arrows:=1, Axes(0, 2+i), Arrows:=0,

 DotStyle:=plus,
 LabelDot(2, "$x$","SO"),

 tMin:=0, tMax:= 3,
 Cartesienne(x), Cartesienne(-x),

 Width:=12, Color:=darkgreen,
 tMin:=0, tMax:=5,
 Cartesienne(sqrt(x^(2)-1)),
 Cartesienne(-sqrt(x^(2)-1)),

 FillColor:=skyblue, FillOpacity:=0.4,
 FillStyle:=full, Color:=skyblue, Width:=2,
 domaine1(sqrt(x^(2)-1), 1, 2),
 domaine1(-sqrt(x^(2)-1), 1, 2),

 FillColor:=palegreen, Color:= palegreen, Width:=1,
 domaine2((sqrt(3)/2)*x, sqrt(x^(2) - 1), 0, 2),
 domaine2(-(sqrt(3)/2)*x, -sqrt(x^(2) - 1), 0, 2),


Mais est-ce que c'est possible de faire la même chose en ne définissant que $y^2 = x^2 - 1$ à la place de passer par la racine?

Et j'aimerais aussi n'avoir la graduation des axes que jusqu'à 1, est-ce possible?

Merci d'avance et bonne journée!
Dernière édition par Woodoo7 le 02 Juin 2013 11:49, édité 1 fois.
Woodoo7
 
Messages: 24
Inscription: 02 Nov 2012 23:25

Re: Amélioration code

Messagepar P.Fradin » 02 Juin 2013 11:48

Bonjour,

Pour pouvoir graduer seulement une partie des axes, il faut utiliser le modèle grid.mod, celui-ci charge automatiquement le modèle draw2d.mod qui permet de dessiner ce que tu souhaites de manière un peu plus simple. Pour éviter les racines carrées, il faut utiliser le paramétrage classique de l'hyperbole, ce qui donnerait:
Code: Tout sélectionner
[
     Marges(0,0,0,0), view(-0.5, 3, -3.5,3.5),
     draw("axes",[0,1+i],[gradlimits:=[1,1], Arrows:=1, legend:=["$x$","$y$"]]),
     t0:=argch(2),
     draw("parametric",ch(t)+i*sh(t),  [t:=[-t0,t0], FillColor:=skyblue, FillOpacity:=0.4, FillStyle:=full, Color:=skyblue, Width:=2, close:=1] ),
     t0:=argch(Xmax),
     draw("parametric",ch(t)+i*sh(t), [t:=[-t0,t0], Width:=12, Color:=darkgreen] )
]

hyperbole.png
hyperbole.png (6.76 Kio) Consulté 8759 fois
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: Amélioration code

Messagepar Woodoo7 » 02 Juin 2013 13:54

Merci beaucoup!

C'est parfait et ça donne vraiment bien :).

Est-ce qu'il existe une doc pour le modèle draw2D? Je n'en ai pas trouvé dans l'aide ni dans mes dossiers.
Woodoo7
 
Messages: 24
Inscription: 02 Nov 2012 23:25

Re: Amélioration code

Messagepar P.Fradin » 02 Juin 2013 14:30

Woodoo7 a écrit:Est-ce qu'il existe une doc pour le modèle draw2D? Je n'en ai pas trouvé dans l'aide ni dans mes dossiers.


En principe, dans l'interface graphique, tu fais Menu Aide/Documents pdf et tu dois le voir dans la liste.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04


Revenir vers Questions - Réponses

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 12 invités

cron