point à l'intérieur d'un polygone

Utilisation de Xcas

Modérateur : xcasadmin

Répondre
fred
Messages : 46
Inscription : mer. sept. 09, 2009 7:29 pm

point à l'intérieur d'un polygone

Message par fred » dim. janv. 27, 2013 10:41 am

Bonjour
Question assez urgente car j'anime un stage dans lequel je veux faire passer les collègues de GeoGebra à Xcas en leur montrant les complémentarité des 2 logiciels.

Dans une fenêtre géométrie : ABCD est un parallélogramme.
Je veux définir M(xm,ym) à l'intérieur de ABCD afin de comparer "aire(AMB)+aire(DMC)" avec "aire(AMD)+aire(BMC)"à l'aide de calculs algébriques.
avec GGB j'ai l'outil "point sur une surface définie par un polygone" (croisé ou non !).
Je n'arrive pas à trouver cet outils dans Xcas.
Merci.

Guillaume
Messages : 112
Inscription : sam. janv. 20, 2007 8:48 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par Guillaume » dim. janv. 27, 2013 3:30 pm

Bonjour,

peut-être quelque chose comme :

Code : Tout sélectionner

supposons(x:=[0.6,0,1,0.01]);
supposons(y:=[0.5,0,1,0.01]);
A := point(0);
B := point(2);
C := point(2.5+i);
parallelogramme(A,B,C,D);
M := point(x*(B-A) +y*(D-A));
a1 := aire(triangle(A,M,B)) + aire(triangle(D,M,C));
a2 :=  aire(triangle(A,M,D)) + aire(triangle(B,M,C));
a1 - a2;

fred
Messages : 46
Inscription : mer. sept. 09, 2009 7:29 pm

Re: point à l'intérieur d'un polygone

Message par fred » mar. janv. 29, 2013 10:50 am

Bonjour,

Code : Tout sélectionner

M := point(x*(B-A) +y*(D-A));
[/quote]
C'est ce qui me gêne : je voulais une fonction "toute faite".
L'idée est de le présenter à des collègues et/ou à des élèves de 2nde.
J'aime bien calculer à l'aide du nom des points, mais pour moi. Devant des élèves de seconde qui maîtrisent plus que mal les vecteurs, j'évite.
Surtout que l'idée de l'exercice n'est pas de placer un point à l'intérieur d'un polygone, mais un calcul d'aire. je voulais passer de GGB avec une recherche "numérique" et une conjecture à Xcas avec une démonstration.
Merci quand même pour cette réponse.

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par parisse » mar. janv. 29, 2013 5:52 pm

Je pense qu'il y a une ambiguité sur la question qui explique peut-etre que la réponse ne vous satisfait pas. Est-ce que vous voulez un point sur le parallélogramme ou dans le parallélogramme?
J'avais compris "dans" et dans ce cas je ne connais pas de méthode simple pour en générer un pour un polygone général, la méthode proposée par Guillaume répondant parfaitement à la question pour un parallélogramme.
S'il s'agit d'un point sur le parallélogramme ou sur un polygone en général (ça me semble être ce que fait geogebra avec point sur objet), la commande M:=element(E) si E:=parallelogramme(A,B,C,D) répond à la question.

Guillaume
Messages : 112
Inscription : sam. janv. 20, 2007 8:48 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par Guillaume » mar. janv. 29, 2013 8:45 pm

Je comprends le problème. Je m'étonne cependant que malgré cette incitation des programmes à utiliser des logiciels, on n'en ai pas profité pour enfin travailler sur des espaces affines et calculer sur des points ce qui me paraît tellement plus naturel et éclairant que des opérations alambiquées sur les coordonnées.
Voici donc une autre proposition qui permet de démontrer le résultat dans le cas général sans opération sur les points.
Je pense que la construction et la modélisation du point M a un intérêt en soi et il serait dommage d'employer une boîte noire "point dans le parallélogramme" pour ensuite s'en servir pour démontrer : ça biaise un peu la portée de la "démonstration"... Autant dire tout de suite que ça vaut zéro et basta.
Placer le point M, ça permet de parler de coordonnées dans un pepère (ici A,B,D) puis de faire un peu de calcul.

Code : Tout sélectionner

supposons(x:=[0.34,0,1,0.01]);
supposons(y:=[0.86,0,1,0.01]);
supposons(xb:=[1.4,0,10,0.1]);
supposons(xc:=[2.1,0,10,0.1]);
supposons(yc:=[1.6,0,10,0.1]);
A := point(0,0);
B := point(xb,0);
C := point(xc,yc);
parallelogramme(A,B,C,D);
M := point( x*(abscisse(B)-abscisse(A)) + y*(abscisse(D)-abscisse(A)) , x*(ordonnee(B)-ordonnee(A)) + y*(ordonnee(D)-ordonnee(A)) );
a1 := aire(triangle(A,B,M)) + aire(triangle(D,M,C));
a2 :=  aire(triangle(A,M,D)) + aire(triangle(B,C,M));
a1 - a2;
simplifier(a1 - a2);

alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

Re: point à l'intérieur d'un polygone

Message par alb » mar. janv. 29, 2013 9:34 pm

"J'aime bien calculer à l'aide du nom des points, mais pour moi. Devant des élèves de seconde qui maîtrisent plus que mal les vecteurs, j'évite."
c'est peut-être une erreur.
Penser "B-A" quand on cherche les coordonnées du vecteur AB permet à un élève de seconde de ne plus se tromper. (j'ai testé)
A ce titre M:=A+3*(B-A) est vite assimilé.
Concernant ton sujet, je ne vois pas l'intérêt d'imposer à M d'être dans la figure.
On peut naviguer à vue dans le parallélogramme et travailler en symbolique.
Il faut juste indiquer les points dans le sens trigo ou prendre la valeur absolue de l'aire.
Pour un point sur un polygone il y a une fonction que je ne retrouve pas de mémoire ...
[Edit] j'ai retrouvé. paragraphe 9.9.13 de la doc
pour aller vite: cliquer en mode point pour créer A,B,C,D,E,F
figure:=polygone(A,B,C,D,E,F);
t:=element(0 .. 6);
M:=element(figure,[floor(t),frac(t)])

fred
Messages : 46
Inscription : mer. sept. 09, 2009 7:29 pm

Re: point à l'intérieur d'un polygone

Message par fred » mer. janv. 30, 2013 8:58 pm

Bonsoir
Je voulais un point DANS le (sur la surface du) parallélogramme (ou un polygone plus généralement). Mon idée est de passer de GGB à Xcas pour pouvoir démontrer et je veux utiliser les mêmes protocoles de construction.
Avec GGB je clique et je conjecture, avec Xcas j'écris et je démontre : c'est un peu le fil du rouge de mon stage.
Beaucoup de collègues sont frileux devant Xcas et commencent à maîtriser GGB, c'est pourquoi je veux faire des passerelles entre les deux pour initier en souplesse.
On a pas forcément besoin de l'outil informatique pour cet exerice, mais il est simple à comprendre et mettre en place pour commencer. La figure proposée permet de conjecturer avec GGB et l'outil "point DANS un polygone" que la somme des aires est constante, je voulais passer en "géométrie formelle" pour démontrer avec Xcas en utilsant des commandes similaire.
Maintenant, pour un autre type d'exercice, j'aime bien les solutions proposées et elles me satisfont pleinement ;-)
Merci.

alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

Re: point à l'intérieur d'un polygone

Message par alb » mer. janv. 30, 2013 9:44 pm

Pourquoi pas ceci M pouvant sortir de la surface (on peut cliquer les 3 points en mode exact)

Code : Tout sélectionner

A:=point([-2,3,'affichage'=0]);
B:=point([3,6,'affichage'=0]);
C:=point([2,-1,'affichage'=0]);
P:=parallelogramme(A,B,C,D);
supposons(x=[0.88,-4,4,0.08]);
supposons(y=[2.55,-5,10,0.15]);
M:=point(x,y);
T1:=triangle(A,M,B);
T2:=triangle(D,C,M);
T3:=triangle(A,D,M);
T4:=triangle(B,M,C);
S1:=abs(aire(T1))+abs(aire(T2));
simplifier(S1);
S2:=abs(aire(T3))+abs(aire(T4));
simplifier(S2);

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par parisse » jeu. janv. 31, 2013 7:29 am

Ou est l'outil point dans polygone dans geogebra? Je vois bien point sur objet dans le menu point, mais pas point dans polygone.

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par parisse » jeu. janv. 31, 2013 3:05 pm

Bon, j'ai trouve, il suffit de cliquer dans et pas sur le polygone dans geogebra. Et en reflechissant, il est assez simple de savoir si on est encore dans le polygone si on y etait, il suffit de verifier que les equations de droite des segment limitant le polygone restent du meme signe (c'est d'ailleurs sans doute encore vrai pour d'autres types de frontieres). Dans Xcas, ca aurait sans doute plus de sens d'ecrire une fonction qui teste l'appartenance exacte a un polygone (quitte a laisser l'utilisateur deplacer un point completement libre) que d'essayer de faire une interface pour ca, et esperer qu'un jour les concepteurs de geogebra s'interesseront a giac comme noyau de calcul formel (ca permettrait d'utiliser leur interface pour la geometrie). Maintenant que je sais faire une interface en java pour giac, ca a peut-etre des chances, d'autant que leur noyau cas actuel reduce doit pas etre facile a interfacer et n'a pas de commandes de geometrie formelle.

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par parisse » jeu. janv. 31, 2013 3:18 pm


Alek
Messages : 111
Inscription : jeu. oct. 28, 2010 1:20 pm

Re: point à l'intérieur d'un polygone

Message par Alek » ven. févr. 01, 2013 8:49 am

Juste une réflexion: cela revient à calculer l'indice d'un point par rapport à un lacet (une intégrale complexe), non ? Ligne brisée étant relativement facile à paramétrer, je suis tenté de dire que l'on peut le calculer directement en Xcas (mais certainement ce n'est pas au niveau de lycée!). Un avantage est que cela devrait être faisable pour une plus grande famille de courbes.
A.

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par parisse » ven. févr. 01, 2013 11:33 am

En effet, on doit pouvoir le calculer comme ca pour une courbe pour laquelle chercher des intersections avec une demi-droite serait compliquee.

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: point à l'intérieur d'un polygone

Message par parisse » lun. févr. 04, 2013 10:25 am

J'ajoute une fonction is_inside (en francais est_dans) dans la branche 1.1 de giac. Pour l'instant ca traite les polygones et les cercles.

Répondre