Stato iniziale di una vista grafica

andrea.deroni shared this question 2 years ago
Needs Answer

Sto cercando di costruire uno script che permetta, in modo automatico, di adattare a qualsiasi monitor la costruziuone fatta su qualunque altro, indipendentemente da dimensioni o risoluzione.


Di fatto è un problema di scalatura della costruzione, in modo che appaia nello stesso modo, con lo stesso rapporto degli assi eccetera: non mi pare una funzione nativa di Geogebra: l'uso dello zoom può portare a viste inattese.


Per ottenere lo scopo pensavo di rilevare le dimensioni della vista grafica, nell'ipotesi che la finestra "globale" (cioè quella che contiene tutte le viste, i menù eccetera..) sia nella sua dimensione massima: così la imposto mentre lavoro sulle mie costruzioni, così la salvo e così la ritrovo (nella sua dimensione massima) su monitor di qualunque dimensione.


La procedura automatica è contenuta nella funzione oninit(), nella quale, come prima cosa, sono rilevate le dimensioni della finestra grafica effettivamente disponibile sul monitor utilizzato.


Il problema è che, nella fase di ingresso, i dati NON sono rilevati rispetto alla finestra effettiva ma su una finestra standard 800x600, che è quella che si apre, di default, all'apertutra di un doicumento NUOVO: quindi i dati rilevati sono errati. Un rilevamento degli stessoi dati DOPO l'esecuzione di oninit() rileva invece i dati corretti, come si pò verificare con il file che allego.


Questo impedisce la scrittura di una procedutra "trasparente" a chi utilizza la costruzione (tipicamente un allievo).


Direi che questo è un difetto che andrebbe sistemato.


So che esistono funzioni che permettono di controllare le dimensioni della finestra, ma il problema è di avere infoprmaziomni sul sistema che ospita la costruzione.


Qualche suggerimento o commento?

Comments (6)

photo
1

Puoi superare il problema caricando il file nella piattaforma dei materiali (quello che una volta era GeoGebra Tube), che di solito poi, essendo una pagina Web, viene visualizzata bene dallo smartphone alla LIM.

photo
1

Comunque non mi sembra che GeoGebra si apra a 800x600: si apre con le dimensioni che hai utilizzato all'ultimo salvataggio.

Io ho uno schermo Full HD e mi si apre a risoluzione e dimensioni massime

photo
1

Non mi sono spiegato bene allora. Il file si apre nelle dimensioni in cui lo hai chiuso ma se cerchi di leggere, scrivendo un opportuno codice nella funzione oninit(), le informazioni sulle dimensioni in pixel della finestra grafica ti accorgi che le dimensioni sono quelle che avresti se la finestra fosse 800x600: guarda caso, se apro un file NUOVO mi viene proposto proprio in dimensioni 800x600 (che poi uno massimizza in base al proprio monitor.


Quindi, questo è un bug, direi. Hai provato il file che ho allegato? se lo fai vedi che i valori letti in inizializzazione non coincidono con quelli effettivi a finestra aperta; se rileggi i parametri una seconda volta allora coincidono.


Mi rendo conto che la possibilità di caricare i materiali risolve il problema (non lo ho ancora verificato direttamente ma ci credo), però, mi piacerebbe che la cosa fosse messa a posto: quanti altri comportamenti anomali potrebbero rendersi evidenti in una routine di inizializzazione?

photo
photo
1

Forse ho sbagliato modalità di risposta: chiedo scusa

photo
1

Nessun problema.

Il fatto è che ieri sera quando ti ho risposto era quasi mezzanotte, e a quell'ora il laptop deve essere necessariamente spento. Quindi aprire il file con l'ipad (come ho fatto)mi è stato di poco aiuto.

Questa è comunque una domanda che richiede una risposta tecnica: passo la palla al Team.


Tieni conto che molti sono in ferie, quindi abbi un pochino di pazienza.

photo
1

Ok, grazie

© 2021 International GeoGebra Institute