- Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 8 mesi fa da
Luciano Ribichini.
-
CreatoreTopic
-
23 Dicembre 2023 alle 17:19 #121881
-
CreatoreTopic
-
AutoreRisposte
-
-
24 Dicembre 2023 alle 8:47 #121882::
Luciano,
io sono l’ultima persona a darti consigli sull’uso di TikZ o pstricks. Quindi quanto ti scrivo va preso con le pinze.I programmi di disegno da usare con LaTeX e con i vari motori di composizione sono destinati al disegno, appunto, e anche se fanno calcoli meravigliosi per determinare le coordinate dei punti speciali e le dimensioni lineari degli oggetti da collocare sul disegno, non sono in generale in grado di fornire all’utente le informazioni metriche che l’utente desidera.
Come ho scritto spesso, io preferisco usare l’ambiente picture ampliato dal pacchetto pict2e (descritto dallo stesso Leslie Lamport nella sua guida del 1994, ma realizzato da altri utenti solo nel 2003} e dal mio curve2e, ulteriormente ampliato dal pacchetto euclideangeometry (caricando quest’ultimo vengono caricati nella giusta sequenza anche gli altri file di estensione).
Il vantaggio di euclideangeometry e dei suoi precedenti è che, oltre a non ingombrare la memoria con cose che non vengono usate spesso o vengono usate dietro le quinte (un esempio: le funzioni trigonometriche vengono usate abbastanza spesso, ma vengono calcolate consultando enormi tabelle quasi come fossero le tavole che si usavano 60 anni fa al liceo e all’università con le tavole dei logaritmi e delle funzioni trigonometriche dirette e inverse) senza usare le funzionalità moderne delle distribuzioni del sistema TeX grazie alla funzione LaTeX3 \fpeval.
Euclideangeometry e curve2e usano \fpeval e fanno qualsiasi calcolo necessario alla grafica.Ma, per esempio, euclideangeometry può dare all’utente la lunghezza grafica di un segmento, ma non può calcolare l’area di un semplice poligono regolare. Potrebbe farlo, ma bisognerabbe scrivere le macro opportune diverse da poligono a poligono. Tuttavia secondo me non sarebbe utile per i segueti motivi.
I programmi da disegno TikZ, pstricks, euclideangeometry lavorano con le coordinate del disegno non con le coordinate della realta a cui il disegnao si riferisce. Anche un semplice problema come “Un contadino possiede un campo rettangolare di 50m per 100m; quante are può coltivare in quel campo?” Be’, il problemino richiede di moltiplicare quelle due lunghezze che danno per risultato 5000m2 e di dividere per 100m2/a ottenendo 50a. Semplice, no? Ma è impossibile da fare con i programmi di disegno a meno che non si tenga presente dei fattori di scala e non si rieascano a gestire le unità di misura.
Questo è il punto: le lunghezze e le aree sono grandezze misurabili (coppie ordinate di un numero e di un simbolo), non numeri puri e la matematica delle grandezze non è la matematica dei numeri. Con vari artifici si potrebbero gestire anche le unità di misura, ma sarebbe enormemente complicato.
Inoltre, c’è il problema non specificato nel tuo messaggio: vorresti calcolare le lunghezze di segmenti rettilinei e, forse, di archi circolari, e superfici di figure semplici come poligoni regolari, cerchi, ellissi, e simili piccole code? Oppure vuoi calcolare le lunghezze di linee qualsiasi e aree di superfici delimitate da qualsiasi contorno? Negli ultimi due casi, oltre a lavorare con grandezze, devi anche calcolare integrali di linea e integrali di superficie che nemmeno \fpeval può calcolare.
Il pacchetto siunitx gestisce le unità di misura in un modo favoloso, ma non mi risulta che sia capace di eseguire calcoli sulle grandezze, anche calcoli banali come quelli del campo di 50a.
Conclusione: spero che qualcun altro ti possa dare informazioni migliori delle mie, ma penso che programmi destinati alla tipografia non siano adatti; forse LuaLaTeX puo essere capace di fare quello che chiedi, almeno con figure semplici, ammesso che il lunguaggio Lua sia capace di gestire le grandezze, non solo i numeri. Ho i miei dubbi, ma non ocnosco Lua fino a quel punto, anzi non conosco Lua, anche se talvolta riesco a capire cose scritte in Lua ma da altri, perché io non saprei da dove cominciare.
-
24 Dicembre 2023 alle 9:23 #121883::
linden-limmer” post=122444Ciao a tutti,
vado al dunque:
1) E’ possibile calcolare le aree e le lunghezze con TeX (per esempio con tikz o pstricks)?
2) C’e’ qualcuno che lavora a questo argomento (all’interno di TeX, intendo)?Saluti e buone feste
LucianoCiao Luciano.
Secondo me dipende dal tipo di problema di calcolo che hai.
Voglio dire, che tipo di calcolo intendi?In attesa di conoscere il contesto a cui si riferisce la domanda, posso sicuramente dire che essendo TeX perfettamente in grado di fare qualsiasi calcolo, nel senso di Turing, non è detto che sia fattibile nella pratica. Ciò che è teoricamente possibile non è detto che lo sia nella realtà.
Una volta scrissi un programma che risolveva schemi di Sudoku. E li risolveva in brevissimo tempo, qualche millisecondo.
Ho pensato che il mio programma fosse in grado di dare una risposta alla domanda “quante griglie di Sudoku esistono?”.
Lanciai quindi il programma sulla griglia vuota in attesa che fosse stampato il numero cercato.
La mattina dopo, con mia sorpresa, il programma stava ancora girando. Decisi di fare una stima rapida e conobbi il tempo che avrei dovuto attendere: circa diecimila anni 🙂 .Certamente in fatto di calcoli, Lua è molto più efficiente di TeX, e con LuaLaTeX è possibile compilare documenti TeX che eseguono codice Lua.
Un esempio è “la calcolatrice”, un piccolo e interessante esempio di uso di Lua per il calcolo che trovi nella guida tematica a Lua, scaricabile dal sito GuIT.
Altro esempio di impiego di Lua è il pacchetto tkz-elements per il disegno geometrico.
Ricambio gli Auguri
Auguri a tutti di buone festività.
R.
-
24 Dicembre 2023 alle 9:50 #121884::
Ciao a tutti,1) grazie per le risposte!
2) Cerco di chiarire il mio pensiero.
3) Prendiamo un quarto di cerchio: la sua area e’ (pi / 4)*R^2:
volevo sapere se c’e’ un modo con TeX and friends (TeX+ tikz+ lua, per esempio) di ottenere (pi / 4)
cioe’ di ottenere l’area anche in unita’ di misura, diciamo, non SI.
4) Prendiamo un quarto di cerchio: la lunghezza dell’arco di circonferenza e’ (pi /2)*R.
Quello che vorrei ottenere e’ (pi / 2).
5) Questi due esempi, i cui risultati sono ovviamente noti, sono appunto solo degli esempi:
si tratta cioe’ di “test” che il pacchetto per misurare le lunghezze e le aree deve superare per poi
cimentarsi con qualcosa di piu’ interessante, che ne so, la lunghezza della catenaria, della cardioide, …
Saluti
Luciano
-
24 Dicembre 2023 alle 11:05 #121885::
linden-limmer” post=122447Ciao a tutti,
1) grazie per le risposte!
2) Cerco di chiarire il mio pensiero.
3) Prendiamo un quarto di cerchio: la sua area e’ (pi / 4)*R^2:
volevo sapere se c’e’ un modo con TeX and friends (TeX+ tikz+ lua, per esempio) di ottenere (pi / 4)
cioe’ di ottenere l’area anche in unita’ di misura, diciamo, non SI.
4) Prendiamo un quarto di cerchio: la lunghezza dell’arco di circonferenza e’ (pi /2)*R.
Quello che vorrei ottenere e’ (pi / 2).
5) Questi due esempi, i cui risultati sono ovviamente noti, sono appunto solo degli esempi:
si tratta cioe’ di “test” che il pacchetto per misurare le lunghezze e le aree deve superare per poi
cimentarsi con qualcosa di piu’ interessante, che ne so, la lunghezza della catenaria, della cardioide, …
Saluti
LucianoUna cosa del genere?
`% !TeX program = LuaLaTeX\documentclass{article}
\usepackage{luacas}\begin{document}
% definizione delle funzioni di calcolo
\begin{CAS}
function area(r)
local res = pi*r^2
return res:autosimplify()
end
%
function circ(r)
local res = 2*pi*r
return res:autosimplify()
end
%
\end{CAS}% definizione di due raggi uno intero e uno frazionario
\begin{CAS}
r1 = 8
r2 = 1/2
\end{CAS}Area del cerchio di raggio \( \print{r1} \): \( \print{area(r1)} \)
Circonferenza di raggio \( \print{r1} \): \( \print{circ(r1)} \)
Area del cerchio di raggio \( \print{r2} \): \( \print{area(r2)} \)
Circonferenza di raggio \( \print{r2} \): \( \print{circ(r2)} \)
\end{document}`Ho considerato cerchi e circonferenze intere, non semicirconferenze come nel tuo esempio.
La modifica sarebbe facile.
Considera che non ti sto spiegando molti dettagli del codice. Alcuni di questi li potrai trovare nel mio prossimo intervento al GuITmeeting 2024 di maggio.
Sempre che il comitato scientifico accetti l’articolo.
Considera inoltre che con il codice Lua è possibile fare molto di più di quello che modtra l’esempio di utilizzo del pacchetto LuaCAS.
Si lo so, è piuttosto entusiasmante.
Magari, se sei interessato potremmo integrare l’articolo e ripresentarlo a due mani, oppure, scriverne uno nuovo.
Il mio indirizzo email si trova per esempio nella guida tematica a Lua (che avrebbe bisogno di essere risistemata).
R.
-
24 Dicembre 2023 alle 15:42 #121886
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.