Properties
Category
French
Tags
point le plus proche
Similar Topics
Statistics
Comments
12
Participants
3
Subscribers
3
Votes
2
Views
552
Share
Solved
Bonjour,
Dans la figure ci-dessous le script sur C est :
Si(EstDansRégion(C,a), SoitValeur(C,C) , SoitValeur(C,PointPlusProcheRégion(a,C)) )
Or si on approche C de la frontière de la région il est systématiquement et mystérieusement renvoyé à un point de coordonnées (1,44 ; 1,51), ce qui n'est presque jamais le point le plus proche..
Files:
pppr.ggb
- GeoGebra
- Help
- Partners
-
Contact us
- Feedback & Questions
- This email address is being protected from spambots. You need JavaScript enabled to view it.
- +43 677 6137 2693
© 2021 International GeoGebra Institute
on peut éviter l'erreur avec le script
Si(EstDansRégion(C,a),SoitValeur(C,C),SoitValeur(C,PointPlusProcheRégion(a,C'')))
où C'' est le symétrique du symétrique de C par rapport à y = x (c'est à dire C'' = C !!!).
Par ailleurs la création du point le plus proche d'un point A qui n'est pas dans la région donne toujours un point B de coordonnées (0.83 ; 0.96). Bouger A ne change pas B... jusqu'à ce qu'on ait amené A dans la région (*), où alors tout devient normal.
(*) ou visiblement qu'on enregistre, ferme puis réouvre le fichier
extra !
un petit raisonnement : si les symétriques C' et C'' sont calculés AVANT de placer le nouveau point C il y a toutes les chances que C ne reste pas accroché à la droite y = x, puisque le point d'avant est plus éloigné de cette droite que le point d'après.
et bingo ! ça marche : C peut glisser sur la droite
ça c'est vraiment cool
What are you trying to do? What's wrong with
Je ne crois pas qu'on puisse utiliser PointIn(a) dans la figure ci-dessous (quadrilatère non croisé) :
A peut se déplacer dans zoneA, qui dépend de B, C et D,
B peut se déplacer dans zoneB, qui dépend de A, C et D, etc.
Un script comme ci-dessus est nécessaire je pense ?
ok ce n'est pas un problème, en tous cas pas pour l'instant
car il y a quand même une erreur
This is not "not a Problem"
and the justification that the command is not necessary is not comprehensible (counter question: why was it created)
.
The description in the manual does not correspond to reality.
And I think the command as he works now is not usable.
One of the following actions is necessary:
But doing nothing is certainly wrong.
.
In the attachment
Même si ma figure extra.ggb postée plus haut marche, je crois que l'explication que je lui avais donnée est fausse..
Et je ne comprends pas bien un script tel que :
SoitValeur(A'', A')
SoitValeur(A',A'')
SoitValeur(A,A')
ou
SoitValeur(Workaround,C)
SoitValeur(C, Workaround)
Est-ce que tu peux m'expliquer à quoi ils servent et comment ça marche ?
Les point A'et C obtenus peuvent-ils effectivement aller au bord de la région ?
Autre question : c'est bien dans le cas d'une définition circulaire que PointIn(a) ne peut pas marcher ?
retour sur ma deuxième question juste au-dessus :
avec la région a : x<=y la frontière est y = x.
possible que je ne comprenne rien mais il me semble que ton point C ne peut pas VRAIMENT y aller (le booléen CisonFrontier est toujours faux)
alors qu'avec ma figure extra2.ggb il y va :
We've made a small improvement to ClosestPointRegion() for the next release.
I still don't understand what's wrong with using PointIn() though, it works for me with 4zones.ggb (also DynamicCoordinates() is better than using scripting)
Ok, PointIn() marche pour les 4zones simultanément, j'ai fait la figure même si je ne sais pas comment elle marche..
mais il y a une autre erreur : PointIn( y<x ) donne le même résultat que PointIn( y<=x ). Il faudrait faire en sorte que le point puisse aller (et rester) sur la frontière dans le second cas, ce qu'il ne fait pas actuellement.
Comments have been locked on this page!