Zoom NoZoom

frndmrsl shared this question 8 months ago
Answered

Bonjour ,

je souhaite interdire la possibilité de zoomer . Pour cela j'utilise la commande Agrandir[x(Coin[1]),y(Coin[1]),x(Coin[3]),y(Coin[3])] qui fonctionne bien .

Mais si ensuite on promène la souris avec le clic gauche enfoncé , on change le rapport x/y sans possibilité de revenir en arrière .

Y a t'il une autre façon d'opérer pour éviter cet inconvénient ?

Comments (47)

photo
1

creo que si defines a=x(coin(1)) etc y usas Agrandir[a,...,...,...] no será posible cambiar el ratio de los ejes

pruébalo

photo
1

Merci pour la réponse mais le test n'est malheureusement pas concluant (aucun changement)

photo
1

try with

photo
1

Merci beaucoup . C'est exactement ce que je souhaitais obtenir .

photo
1

Cependant le comportement redevient sensible à la souris dès que j'utilise les boutons Zoom et No Zoom que j'ai mis en place .

photo
1

Oui, c'est ce qu'il y a écrit dans l'aide de la commande coin ("remarque de jumera" en bas...)

photo
photo
1

this example uses an script in A and B

Files: foro.ggb
photo
1

Merci pour cette autre approche mais il n'est pas aisé de recadrer le rapport x/y à 1 . Il change chaque fois qu'on agrandit ou rétrécit la fenêtre .

photo
1

is there more conditions?

Files: foro.ggb
photo
1

Le zoom est bien supprimé mais dès que j'actionne mes boutons Zoom et No Zoom tout redevient comme je ne voudrais pas .

photo
1

y ahra,¿qué?

estás creando botonees que deshacen la situacion anterior. basta con regresar a ella

Files: foro.ggb
photo
1

Dans votre programme il est fait mention du Coin(5) pour définir le point B . Peut-on savoir à quoi cela correspond . Existe t'il des documents décrivant ces constantes ?

photo
1

l'aide de GeoGebra

https://wiki.geogebra.org/f...

Ouvre un nouveau fichier, crée A = Coin(5), et modifie la taille de ta fenêtre GeoGebra

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

Pour expliquer le "50" du fichier de mathmagic, modifie la taille de la fenêtre GeoGebra dans le fichier coincoin...

photo
1

(je précède une de tes possibles questions)

Mais à quoi sert alors Coin(5) ?

Dans certaines commandes, on doit utiliser des coordonnées en pixels. Exemple

https://wiki.geogebra.org/f...

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

(complément)

Comme tu le vois, le "50" c'est pour l'affichage standard : c'est-à-dire que l'unité 1 correspond (à peu près) à 50 pixels

photo
photo
1

Désolé mais je ne comprends pas bien le problème


essayez avec zoom + et zoom-

(Scusa ma non riesco a capire bene il problema

prova con zoom+ e zoom-)

photo
1

Je me suis sans doute pas clairement exprimé . Ce que je cherche à faire est de disposer de deux boutons , un pour inhiber la possibilité de zoomer et un autre pour la rétablir . La solution proposée par mathmagic est presque parfaite . Je souhaiterais en plus , quand j' autorise à nouveau la possibilité de zoomer , retrouver le même cadrage que j'avais lorsque j'ai bloqué la possibilité de zoomer .

En tous cas merci à vous deux pour toute l'aide apportée jusque là .

photo
1

J'ai enfin finalisé complètement ce que je souhaitais faire grâce aux précieuses informations fournies que j'ai corrigées en partie .

L'anomalie à résoudre avait été déjà constatée et mentionnée dans la documentation (voir image jointe) mais aucun remède n'y a pas encore été apporté .


Pour ceux que cela pourrait intéresser , une solution aboutie pour bloquer et rétablir la possibilité de zoomer est proposée dans le fichier ggb joint .

photo
1

Salut

La réponse a été donnée par mathmagic avec CopierObjetLibre

Mais le Coin(5) dans son fichier ne sert à rien...

Le fichier fonctionne de la même façon si tu supprimes ton point B, et tout ce qui concerne B dans ton script du bouton NoZoom

6b8005ff1622be678e7afbb19ce901ae

photo
1

Merci jumera pour cette version encore plus dépouillée .

photo
1

Tu as lu mon autre message plus haut avec le fichier coincoin..?

(et oui... les réponses de ce forum ne sont plus "successives"...)

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

Tu comprendra alors pourquoi, dans le fichier ZoomNozomm 2 ou 3, quand tu cliques plusieurs fois sur le bouton Zoom, le graphique "bouge" un peu

Les coordonnées des coins sont approchées,

car le quotient de la largeur en pixels de la fenêtre x(Coin(5)) par x(Coin(3)) - x(Coin(1)),n'est pas forcément un nombre entier (ou même décimal...)

photo
photo
1

Oui , cette façon d'imbriquer les messages m'en a fait louper quelques uns . Et je n'en vois pas trop l’intérêt .


Entre temps je me suis penché sur la documentation , notamment sur ce fameux Coin(5) et c'est ce qui m"a amené à ma solution un peu lourde .

Encore merci pour tous ces précieux éclaircissements . Maintenant je peux bloquer et débloquer la possibilité de zoomer sans que rien ne bouge dans la fenêtre graphique . Et ceci en très peu de commandes .


Si cela pouvait être rajouté dans la documentation à titre d'exemple ou autre , ce serait un plus .

photo
1

Bonjour ,

je pensais ma demande complètement résolue mais hélas je viens de m'apercevoir que quand j'enregistre mon application après avoir bloqué la possibilité de zoomer et que je l'ouvre à nouveau , le facteur d'échelle est différent de celui qui existait lors de la sauvegarde .

Y a t'il un remède à cela ?

Cordialement

photo
1

ça fonctionne si tu cliques sur le bouton zoom avant de sauvegarder :(

photo
photo
1

Ce que je recherchais , c'était justement que la possibilité de zoomer reste bloquée quasi définitivement avec les boutons Zoom / No Zoom cachés pour ne pas avoir à rebloquer le zoom à chaque ouverture de fichier .

photo
1

Bonjour,

.Retour au problème de origine:


je souhaite interdire la possibilité de zoomer . Pour cela j'utilise la commande Agrandir[x(Coin[1]),y(Coin[1]),x(Coin[3]),y(Coin[3])] qui fonctionne bien .

Mais si ensuite on promène la souris avec le clic gauche enfoncé , on change le rapport x/y sans possibilité de revenir en arrière 

Il y a un très, très vieux bug.

La fenêtre actuelle est plus petite d'un pixel à chaque bord que le résultat des sommets.

Pour Coin(1), vous devez ajouter 1 pixel chacun dans les directions X et Y pour obtenir les coordonnées de la fenêtre actuelle [Coin(1) + (pixX, pixY)]

Pour Coin(1), vous devez supprimer 1 pixel dans les directions X et Y pour obtenir les coordonnées de la fenêtre actuelle [Corner(1) + (-pixX, -pixY)].

Si cela est pris en compte, le rapport x/y ou la coordonnée de l'origine n'est pas modifié.

La dimension (en unités GGB) d'un pixel peut être calculée à partir des sommets () [voir annexe pixX et pixY].

Un autre (se réveille à nouveau) bug (uniquement dans GGB 5.0) se trouve dans la section Coin(5). Après le démarrage du programme, il n'attendra pas que la fenêtre soit initialisée. A ce stade, Coin(5) == (0,0). Il est utilisé pour calculer les valeurs dépendantes de la fenêtre uniquement lorsque Coin(5) a une valeur.

.

Ce que cette solution ne prend pas en compte : Si la fenêtre est redimensionnée, l'échelle change.


Mais le but principal de mon post est de montrer quels problèmes existent entre le Coin() et la fenêtre réelle et comment ils peuvent être évités.

photo
1

Bonjour rami

Merci pour le "+1 pixel"...

Le problème de ton fichier est que frndmrs ne veut désactiver que le zoom (autoriser le déplacement du graphique)

math magic a donné la (une?) solution en utilisant CopierObjetLibre

__________________________

Et là, on a le problème que si on bloque le zoom et qu'on déplace le graphique

on sauvegarde le fichier mais le rapport x/y et l'origine sont modifiés...

(essaye dans ce fichier où j'ai fait la modification des pixels)

photo
1

Oui, je sais que le souhait "juste zoomer" a été ajouté plus tard.

Mais le souhait initial était un blocage complet et c'est beaucoup plus facile.

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

Vous trouverez ci-joint une version pour GGB 5.0, qui montre la dernière image avec un zoom et un centre corrects après la relance du programme.

Je ne sais pas si une version pour le GGB 6.0 ou une version pour le GGB5.0 et le GGB 6.0 est possible. Je continuerai à enquêter. La conception de ce thème in GGB n'est pas convaincante et comporte des pièges et des bugs.

Cependant, je pense que le développement nécessaire de la compréhension a un mauvais rapport avec le bénéfice (au moins pour le GGB 5.0)

photo
photo
1

J'ai testé sur ma version 5 et ni l'échelle ni la position ne sont retrouvées identiques à la réouverture du fichier .

photo
1

Comment avez-vous créé l'image de gauche et l'image de droite ? Quelle version du GGB

Quel est le nom du programme/fichier avec lequel vous avez travaillé.

Quel environnement système (par exemple, Windows)

ggb-file avant et après un changement.

photo
1

L'image de gauche est avant l'enregistrement et celle de droite à la réouverture .

Ma version GeoGebra est 5.0.570.0-d


Et un grand merci pour oeuvrer à trouver des solutions .

photo
1

L'image de gauche est exactement comme je l'ai sauvée et comme elle a été ouverte sur votre système

J'en conclus que cela fonctionne fondamentalement.

La question est de savoir ce que vous avez changé dans l'image, sous quel nom vous l'avez enregistrée et avec quel nom vous l'avez ouverte à nouveau. (Note : le dernier état sauvegardé est toujours affiché à nouveau). La chose la plus importante pour moi est le fichier ggb qui a ouvert l'image sur le côté droit.

Les variantes suivantes sont envisageables :

  • Vous attendez une fonctionnalité que je n'ai pas mise en œuvre
  • Quelque chose s'est mal passé dans la procédure de test.
  • Le programme ne fonctionne pas dans votre environnement (par exemple, PC trop lent)
  • Le programme comporte une erreur.
  • un autre ?

En raison des réactions que j'ai reçues, je ne peux pas apporter de corrections/propositions.

photo
1

Après avoir fait plusieurs vérifications avec votre dernier fichier ZoomNozomm_5.ggb , j'ai remarqué que pour retrouver la même position à la réouverture du fichier , il ne fallait pas modifier le centrage des axes . Par contre si on amenait l'intersection des axes vers un coin quelconque de l'écran avant de sauvegarder le fichier avec FixZoom activé , alors on le retrouvait à peu près au milieu de l'écran à la réouverture du fichier mais pas là où on l'avait laissé .

photo
1

Je ne suis pas sûr d'avoir bien entendu. Je l'interprète comme suit (les déclarations suivantes font également référence à l'état "fixe):

  • Après la fermeture et la réouverture, le facteur de zoom doit être le même qu'avant la sauvegarde.
  • Après la fermeture et la réouverture, l'origine des axes doit se trouver à un point prédéterminé (toujours le même). Ceci est indépendant de la position de l'origine avant la clôture précédente.

Je suggère que ce point ne soit sauvegardé/fixé que lors du passage à l'état "fixe". (Dans la version 5 actuelle, l'origine est mémorisée à chaque mouvement du réticule).

Ce n'est pas un grand changement et ressemble à la version 6 ci-jointe.

Note : Il n'y a (malheureusement) aucune possibilité d'utiliser l'événement "Sauvegarder/Fermer" dans le GGB.

photo
1

J'ouvre ton fichier et je décoche la case "zoom"

Je zoome puis je fixe le zoom

Je déplace le graphique : j'obtiens ceci :

c0d610017387bfda38401c98e8849800

Je ferme en sauvegardant

J'ouvre le fichier : le graphique n'est plus exactement comme il était quand j'ai sauvegardé (pas la même origine et pas les mêmes unités sur les axes), ce que veut frndmrsl

1ee58fd28277ce53f151a038809c0560

GeoGebra 5 (570) sur MAC

photo
1

@jumera

Je n'en suis pas sûr, mais je pense que vous ne demandez pas la même chose que frndmrsl.

Leur demande (telle que je la comprends actuellement) est réalisée dans la version 5 (voir votre poste et ma réponse).

La demande de frndmrsl (telle que je la comprends actuellement) est réalisée dans la version 6 (voir ce post et mes réactions à ce sujet)

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

Ce qui serait utile:

Une description de l'état cible, sans approche de solution technique et si possible du point de vue de l'utilisateur. Ceci devrait être confirmé par frndmrsl.

Ce qui n'est pas vraiment utile : une description de ce qui ne devrait pas l'être.

photo
photo
1

Je crois que jumera a bien illustré ce qui se passe et que je ne souhaite pas avoir . Je souhaite retrouver à l'ouverture du fichier l'écran que j'avais à la fermeture quelles qu'aient été les opérations faites avant la sauvegarde .

En résumé :


  • Après la fermeture et la réouverture, le facteur de zoom doit être le même qu'avant la sauvegarde.
  • Après la fermeture et la réouverture, l'origine des axes devrait rester celle qui existait à la sauvegarde .

photo
1

Hm...

J'ai l'impression d'être dans une machine à laver : la cible est devant mes yeux mais elle tourne tout le temps.

photo
1

Je suis désolé si je n'exprime pas clairement ce que je souhaite .

C'est vrai que dans un premier temps je ne recherchais qu'à bloquer le zoom . Mais je me suis aperçu en utilisant la solution proposée que ce blocage ne permettait pas de retrouver l'écran tel qu'il était à la sauvegarde . D'où ma demande complémentaire .


En tout cas , s'il n'y a pas de solution pour cela , merci quand même d'avoir passé du temps sur cette question .

photo
1

Peut-être devrions-nous faire une distinction entre

  • Le développeur sauve
  • L'utilisateur sauve

et en outre, il faut probablement définir les manipulations que l'utilisateur peut effectuer.

photo
1

Dans l'application qui a amené ma question , l'utilisateur ne serait autorisé qu'à manipuler des curseurs , des boutons et des points sur objets (cercle) . Ce que je souhaitais , c'était qu'il ne puisse pas bouger les objets (ici un cercle et son contenu) . Donc je l'ai paramétré non sélectionnable . Puis j'ai bloqué le zoom grâce aux solutions proposées . Il reste que l'utilisateur peut toujours déplacer le cercle en bougeant les axes . Je vais donc me contenter de bloquer le zoom ce qui est déjà un bon pas .

photo
1

OK (compris)

Et que voulez-vous en plus, si possible ?

photo
1

Ce qu'il me manque , c'est la possibilité de bloquer le déplacement des axes par l'utilisateur . Mais je pense que ce n'est pas possible ou pas aussi simple que pour le zoom .

photo
1

Je vais essayer.

Il est très tard chez moi et c'est presque dimanche.

Je continuerai demain (de votre point de vue).

photo
1

Ou habites-tu rami..?

(et préféres-tu parler ici en français ou en anglais..?)

photo
photo
1

Cela fonctionne, je pense.

Il fonctionne en GGB 5.0 et 6.0, mais si vous modifiez la version GGB, la position et le facteur de zoom doivent être ajustés.

.

@jumera

La seule langue que je parle et comprends vraiment est le suisse allemand. Ici, en Indonésie, sur une petite île bien connue comme le paradis des dieux (à responsabilité très limitée), je peux parler suisse allemand toute la journée avec ma femme.

À l'école, j'avais des notes terribles en français (C'était il y a très longtemps, mais c'était alors la langue mondiale de l'élite éduquée.).

Un peu plus tard, j'ai également eu de mauvaises notes en anglais (Aujourd'hui, c'est la langue (nouvelle, babylonienne) de la politique et, parce qu'elle est équivalente, également la langue du capital. Une langue que tout le monde parle mais que peu comprennent.).

Alors, on s'en tiendra au français.

photo
1

Merci beaucoup rami . On peux dire "avec rami rien d'impossible en GeoGebra" . Et en plus tout ça depuis les antipodes !

Maintenant tout est bloqué comme je le souhaitais .


Encore merci pour la patience gardée face aux questions pas toujours clairement exprimées et parfois changeantes .


Bonne continuation dans les iles .

photo
1

J'ai retrouvé un "vieux" fichier

où le zoom est bloqué (mais pas le déplacement)

et qui se réouvre pareil après sauvegarde

© 2020 International GeoGebra Institute