|
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
utilisateur perdu... Invité
|
Posté le: 24 Mai 2005 15:44 Sujet du message: dessin d'une ligne |
|
|
bonjour !
je voudrais réaliser le programme suivant :
point(O,[0,0]):
point(P,[x,y]):
point(F,[x+Fx,y+Fy]):
line(d,[O,P]):
perpendicularline(p1,F,d):
intersection(inter,p1,d):
évidemment maple m'indique qu'il faut que x et y soient différents de zéro, mais meme en mettant :
if (x=0 and y=0) then
inter:=[0,0]:
else
point(0,[0,0]),
point(P,[x,y]),
point(F,[x+Fx,y+Fy]),
line(d,[O,P]),
perpendicularline(p1,F,d),
intersection(inter,p1,d):
end if:
ca ne marche pas !!!
quelqu'un a-t-il la solution ? |
|
Revenir en haut de page |
|
|
ALS Invité
|
Posté le: 24 Mai 2005 16:13 Sujet du message: Re: |
|
|
En faisant une procédure en fonction des coordonnées x,y,Fx,Fy des 2 points, ça se passe mieux, mais apparemment si l'on veut travailler en formel avec des coordonnées variables, on aura droit à ce type d'erreur:
Citation: |
geometry/checkline: One of the following conditions must be satisfied -x <> 0 -y <> 0
Error, (in geometry/checkline) not enough information: the line is not defined
|
Voici le code que je propose donc pour éviter ce problème:
Code: |
> with(geometry):
> inters:=proc(x,y,Fx,Fy)
> point(O,[0,0]):
> point(P,[x,y]):
> point(F,[x+Fx,y+Fy]):print(detail(F));
> line(d,[O,P]): print(detail(d));
> PerpendicularLine(p1,F,d):
> print(detail(p1));
> intersection(inter,p1,d):
> coordinates(inter);
> end proc:
> inters(3,2,-1,7);
name of the object: F
form of the object: point2d
coordinates of the point: [2, 9]
assume that the names of the horizontal and vertical axes are _x and _y, respectively
name of the object: d
form of the object: line2d
equation of the line: -2*_x+3*_y = 0
assume that the names of the horizontal and vertical axes are _x and _y, respectively
name of the object: p1
form of the object: line2d
equation of the line: -24+3*_x+2*_y = 0
72 48
[--, --]
13 13
|
|
|
Revenir en haut de page |
|
|
utilisateur perdu... Invité
|
Posté le: 24 Mai 2005 17:07 Sujet du message: |
|
|
le probleme c'est que pour x=0 et y=0 ca ne marche pas...
en plus je voudrais utiliser ces coordonnees dans un champ de vecteurs or fieldplot n'accepte pas les procédures... |
|
Revenir en haut de page |
|
|
ALS Invité
|
Posté le: 24 Mai 2005 17:41 Sujet du message: Re: |
|
|
Tout à fait normal que ça ne fonctionne pas pour x=y=0, étant donné qu'une droite est définie par 2 points distincts.
J'ai rajouté une ligne au début de la procédure pour éviter ce cas.
Dans fieldplot, rien n'empêche d'appeler la procédure 'inters'.
Exemple:
Code: |
> with(geometry):
> inters:=proc(x,y,Fx,Fy)
> if x=0 and y=0 then return fi;
> point(O,[0,0]):
> point(P,[x,y]):
> point(F,[x+Fx,y+Fy]): #print(detail(F));
> line(d,[O,P]): #print(detail(d));
> PerpendicularLine(p1,F,d):
> #print(detail(p1));
> intersection(inter,p1,d):
> coordinates(inter);
> end proc:
> with(plots):
> fieldplot(inters(-2,-1,Fx,Fy),Fx=-2..2,Fy=-2..2);
|
A+ |
|
Revenir en haut de page |
|
|
utilisateur perdu... Invité
|
Posté le: 24 Mai 2005 19:19 Sujet du message: |
|
|
ben non, ca ne marche pas :
with(geometry):
> inters:=proc(x,y)
> if x=0 and y=0 then return fi;
> point(O,[0,0]):
> point(P,[x,y]):
> point(F,[x+Vx,y+Vy]):
> line(d,[O,P]):
> PerpendicularLine(p1,F,d):
> intersection(inter,p1,d):
> coordinates(inter);
> end proc:
>
> with(plots):
> fieldplot(inters(x,y),x=-10..10,y=-10..10);
geometry/checkline: One of the following conditions must be satisfied -x <> 0 -y <> 0
Error, (in geometry/checkline) not enough information: the line is not defined |
|
Revenir en haut de page |
|
|
ALS Invité
|
Posté le: 25 Mai 2005 8:39 Sujet du message: Re: |
|
|
Bonjour,
J'ai mis 4 paramètres dans la procédure inters et non plus 2.
> inters:=proc(x,y,Fx,Fy)
Or toi, tu l'appelle avec seulement 2 paramètres. |
|
Revenir en haut de page |
|
|
utilisateur perdu... Invité
|
Posté le: 25 Mai 2005 19:24 Sujet du message: |
|
|
oups j'ai oublié de recopier deux lignes, en fait la procédure c'est ca :
with(geometry):
> inters:=proc(x,y)
> if x=0 and y=0 then return fi;
> Vx:=3:
> Vy:=3:
> point(O,[0,0]):
> point(P,[x,y]):
> point(F,[x+3,y+3]):
> line(d,[O,P]):
> PerpendicularLine(p1,F,d):
> intersection(inter,p1,d):
> coordinates(inter);
> end proc:
>
> with(plots):
> fieldplot(inters(x,y),x=-10..10,y=-10..10);
Ce qui fait que j'ai bien deux variables dans ma procédure... et ca ne marche pas !!! |
|
Revenir en haut de page |
|
|
ALS Invité
|
Posté le: 25 Mai 2005 21:24 Sujet du message: |
|
|
J'en sais rien, essaie de l'utiliser avec 4 paramètres ou alors bricoler autre chose... C'est vrai que cette erreur est assez pénible à éliminer.
Sorry |
|
Revenir en haut de page |
|
|
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|