Alternative à PointDans ( )

Rousseau-Wallon shared this question 2 months ago
Needs Answer

Bonsoir,

Je suis en train de chercher une alternative à la commande PointDans(), qui marche mal car quand le point s'approche de la frontière il peut y rester un peu "collé", il y a des sauts... etc.

La région concernée dans mon exemple est l'intersection de 4 disques (en bleu).

Voici ma méthode :

1 - Je place un point E n'importe où dans la région;

2 - Je calcule la distance minimale de ce point à la frontière de la région (nombre b ),

3 - Je place le point A le plus proche de la frontière par rapport à E (ici je l'ai construit pour un quart seulement de la frontière);

4 - Je fais mémoriser les variations de E (qui découlent du mouvement de la souris) par un script sur E :

SoitValeur(M,E)

SoitValeur(W,E-M)

5 - Je construis la tangente à la frontière en A et je calcule un vecteur orthogonal (u) à cette droite. Je calcule le produit scalaire j de u avec le vecteur OW.

6 - Toujours avec un script sur E, je cherche à limiter-interdire le déplacement de ce point. Et c'est là que je rencontre quelques difficultés, car il faut que que si b tend vers 0 sans que j tende vers zéro alors E ne bouge plus, mais si j tend vers 0 alors E doit bouger même si b vaut 0.

Je cherche donc une fonction de b et j qui convient. J'ai essayé différentes choses, dont

SoitValeur(E,M+b^(1+j)*W)

qui marche moyennement.

Une idée ?

Comments (10)

photo
1

Bonjour,

Pas d'alternative à PointDans() mais sans bégaiements .

Une possibilité avec Locus.

(Bleu : Inégalité / Rouge : Locus)

-------------------

éventuellement: alternative pour les mathématique experts par nous : PointDans(<équation>)

photo
1

Merci rami,

S'y j'ai bien compris tu as remplacé la région par un polygone ayant un grand nombre de côtés. Donc ce n'est plus tout à fait la même région c'est bien ça ?

Et je ne comprends pas ton instruction Lieu(LocP2, LocP1), car LocP2 = LocP1 ! Une histoire de point libre ?

PointDans(<équation>) donnerait de meilleurs résultats ? Je regarde ce soir pour trouver l'équation.

photo
1

Quote: "S'y j'ai bien compris tu as remplacé la région par un polygone ayant un grand nombre de côtés. Donc ce n'est plus tout à fait la même région c'est bien ça ?"

Oui, juste comme ça.

-----------------------------------

Quote: "Et je ne comprends pas ton instruction Lieu(LocP2, LocP1), car LocP2 = LocP1 ! Une histoire de point libre ?"

Dans ce contexte, le locus anime un point (LocP1) ou un curseur (interne, non visible de l'extérieur) et enregistre le point dépendant (LocP2) comme un chemin. Ce chemin peut être converti en une liste de points et cette liste de points peut être convertie en un polygone. Une particularité de cette application est qu'aucune transoformation/calcul n'est nécessaire entre le LocP1 et le LocP2, les deux ayant la même valeur.

-----------------------

Quote: "PointDans(<équation>) donnerait de meilleurs résultats ? Je regarde ce soir pour trouver l'équation."

Il est plus élégant (entre mathématiciens) et précis (pas approximatif) et elle est indépendante du zoom ou du recadrage (Les points en dehors de la fenêtre ne sont pas ou seulement grossièrement enregistrés). Elle peut présenter des avantages ou des inconvénients mineurs en termes de performances. Locus a quelques problèmes avec le début et la fin du chemin. Vous devez déplacer manuellement (ou par script) le LocP1 parfois et déclencher un nouveau calcul. Cela serait omis dans une équation.

photo
1

Merci beaucoup pour toutes ces précisions.

En ce qui concerne l'équation je doute fortement qu'on puisse la trouver. Et quand bien même nous l'aurions, la commande PointDans ( ) fonctionnerait-elle ? J'ai testé par exemple PointDans (y^2 + x^4-1 = 0), ça ne marche pas.

photo
1

J'ai le même problème. J'ai peut-être raconté des bêtises. Mais j'ai vu cette solution dans un poste du mathmagic. Mais malheureusement, je ne trouve plus ce thread.

photo
photo
1

ça ne marche pas.
Please post your .ggb file

photo
1

see attachment

photo
1

Sorry, Curve and Implicit curves aren't "Regions"

photo
photo
1

Quoi qu'il en soit je trouve ta méthode super rami. Et je me demande si on ne pourrait pas l'optimiser en prenant un polygone variable, celui constitué seulement par des points de la frontière qui se trouvent dans le voisinage du point que l'on déplace ? Bien sûr il doit y avoir un problème de définition circulaire, mais est-ce vraiment insurmontable ? Un script bien placé pourrait faire l'affaire. Il y a aussi un problème lié à la forme de la courbe frontière, mais quand celle-ci est parfaitement connue on peut plus facilement procéder à des réglages (le cas général étant certainement très complexe).

photo
1

J'ai fait quelques tests: Instabile, lenteur. Je pense que c'est dommage pour le temps.

© 2020 International GeoGebra Institute