Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

FidoCADJ, retrofit e features utili

Regole da rispettare, modifiche, aggiunte, idee per EY

Moderatore: Foto Utenteadmin

0
voti

[41] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto UtentePiercarlo » 17 ago 2024, 14:44

Etemenanki ha scritto:Ma i mouse del mac non hanno quella specie di foruncolo di gomma sopra, che emula la rotellina ? ... o forse solo alcuni modelli li hanno ?


Il Mac è in grado di lavorare con qualunque tipo di mouse USB. I problemi quando ci sono, vengono solo dalla tastiera e, anche se alla fine accetta tutte le tastiere USB, preferisce comunque la sua (di Apple).
Avatar utente
Foto UtentePiercarlo
24,0k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 6718
Iscritto il: 30 mar 2010, 19:23
Località: Milano

0
voti

[42] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto Utentetheking0 » 17 ago 2024, 21:15

DarwinNE ha scritto:...
Per il testo, quando ho riflettuto al problema avevo piuttosto in testa di creare una collezione di rettangoli. Ogni volta che un testo presenta un esponente o un indice, si aggiunge un rettangolo alla collezione che finisce per rappresentare la bounding box di tutto il testo, rettangolo dopo rettangolo. Dopodiché si tratta ogni rettangolo separatamente.

Da quello che ho visto il problema risiede nella "getDistanceToPoint", in pratica la "getStringWidth" che viene usata per calcolare la lunghezza del testo non tiene conto che i caratteri di controllo "_", "^", e il backslash presenti nella stringa che gli viene passata non vengono efferatamente disegnati, di conseguenza la bounding box risulta più lunga del testo.
L'idea sarebbe:
implemento la "getCharWidth" nelle varie interfacce e classi per ricavare la larghezza effettiva di un singolo carattere;
scrivo una funzione parser per ricavarmi quanti caratteri di controllo ci sono nella stringa e per ogni carattere di controllo trovato aggiungo a una variabile la su larghezza (widthOfTotalCtrlChar).
alla fine creo la bounding box tenendo conto che: getStringWidth - widthOfTotalCtrlChar.

Cosa ne pensi ?

Poi vorrei mettere delle limitazione a monte che controlli:
I testi inseriti non possono avere spazi iniziali o finali (trimmiamo le stringhe inserite)
I caratteri di controllo non posso essere ripetuti consecutivamente, ad esempio "________" o "^^^^^^^^^^^^", non hanno senso.
Avatar utente
Foto Utentetheking0
1.442 1 6 11
Master
Master
 
Messaggi: 605
Iscritto il: 11 feb 2012, 22:37

0
voti

[43] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto UtenteDarwinNE » 19 ago 2024, 9:27

theking0 ha scritto:implemento la "getCharWidth" nelle varie interfacce e classi per ricavare la larghezza effettiva di un singolo carattere;
scrivo una funzione parser per ricavarmi quanti caratteri di controllo ci sono nella stringa e per ogni carattere di controllo trovato aggiungo a una variabile la su larghezza (widthOfTotalCtrlChar).
alla fine creo la bounding box tenendo conto che: getStringWidth - widthOfTotalCtrlChar.


Attenzione al fatto che in tipografia ci possono essere delle legature. Per esempio in certi font il rendering di "ff" oppure "fi" oppure "st" o anche altro può differire da "f"+"f", "f"+"i", etc. La lunghezza di "ff" potrebbe non essere due volte la lunghezza di "f". Per questo motivo nei font si parla di glifi e non semplicemente di lettere. E' una cosa parecchio complicata anche dalla presenza del kerning, cioè il fatto che tutti i font degni di questo nome avvicinano "V" e "A" quando scrivono "VA" e fanno lo stesso anche per altre combinazioni di lettere.

Il modo di procedere secondo me è quello di calcolare il rettangolo di dimensioni di ogni "pezzo" del testo (senza prendere lettera per lettera). Quando c'è un esponente, si calcola anche lì un rettangolo e via di seguito. Il risultato è una collezione di rettangoli che possono essere poi ruotati o specchiati.

Attenzione che si può avere degli esponenti di esponenti o indici di indici.

I caratteri di controllo possono venir ripetuti, non ha senso matematicamente, ma potrebbe essere utile per ottenere degli effetti:



(si vede un problema di boundig box anche nell'esportazione qui su EY)
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[44] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto Utentetheking0 » 19 ago 2024, 13:40

Foto UtenteDarwinNE, si, mi sono accorto che il problema è molto più complesso di quello che credevo, per il momento è tutto parcheggiato in un branch locale, sto andando avanti con il resto da come vedi su GitHub.

Proverò a implementare la soluzione che avevi in mente, credo che la via più pulita ed efficiente sarebbe quella di creare questa collezione di rettangoli direttamente nella "DecoratedText" per non avere un doppio parser di token. O avevi una idea diversa ?
Avatar utente
Foto Utentetheking0
1.442 1 6 11
Master
Master
 
Messaggi: 605
Iscritto il: 11 feb 2012, 22:37

0
voti

[45] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto UtenteDarwinNE » 19 ago 2024, 21:19

theking0 ha scritto:credo che la via più pulita ed efficiente sarebbe quella di creare questa collezione di rettangoli direttamente nella "DecoratedText" per non avere un doppio parser di token. O avevi una idea diversa ?


No, è esattamente quella. :ok:
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[46] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto UtenteDarwinNE » 26 ago 2024, 12:04

Foto Utentetheking0, in questo periodo sono più occupato perché sono ho ripreso il lavoro la settimana scorsa.
Non ti stupire se non rispondo in fretta :oops:

GitHub poi manda un sacco di email, ma poi mi perdo su quelle che ho trattato e quelle che non ho trattato.
Ho visto che c'è in ballo una pull request, se riesco la guardo stasera. C'è altro che dimentico?
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[47] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto Utentetheking0 » 26 ago 2024, 13:51

Foto UtenteDarwinNE, si, hai la pull che avevo revisionato e poi se vuoi dare una occhiata alle "discussions" avevo fatto una proposta.
Avatar utente
Foto Utentetheking0
1.442 1 6 11
Master
Master
 
Messaggi: 605
Iscritto il: 11 feb 2012, 22:37

0
voti

[48] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto UtenteMono » 26 ago 2024, 15:37

Foto Utentetheking0
Suggerisco di implementare i menu popup in ogni area in cui si può inserire del testo: casella "Nome File" nelle finestre di dialogo per aprire o salvare un file, casella di ricerca nella libreria componenti, ComboBox per impostare la percentuale di ingrandimento, finestra "Codice FidoCadJ" + altre che possono essermi sfuggite.
Avatar utente
Foto UtenteMono
333 6
Frequentatore
Frequentatore
 
Messaggi: 165
Iscritto il: 30 apr 2013, 10:36

0
voti

[49] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto Utentetheking0 » 26 ago 2024, 15:52

Foto UtenteMono, per copiare o incollare del testo intendi ?
Io non ci avevo neanche fatto caso che mancavano, uso sempre i tasti rapidi per copiare, tagliare, incollare :D
Avatar utente
Foto Utentetheking0
1.442 1 6 11
Master
Master
 
Messaggi: 605
Iscritto il: 11 feb 2012, 22:37

0
voti

[50] Re: FidoCADJ, retrofit e features utili

Messaggioda Foto UtenteMono » 26 ago 2024, 16:02

Sì, proprio quel tipo di menu.
Avatar utente
Foto UtenteMono
333 6
Frequentatore
Frequentatore
 
Messaggi: 165
Iscritto il: 30 apr 2013, 10:36

PrecedenteProssimo

Torna a Chiarimenti, regole, informazioni, proposte

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite