Grazie per la tua valutazione e feedback!
Hai già valutato.
Un'applicazione per visualizzare le curve spaziali e le loro grandezze geometriche differenziali.
# App Visualizzatore di Curve per Android
**Inglese** | [Български](README.bg.md)
Un'app per visualizzare curve nello spazio e calcolare le loro grandezze geometriche differenziali.
## Utilizzo dell'app
- Inserisci `x(t)`, `y(t)`, `z(t)` e un intervallo `[a, b]`, quindi tocca **Disegna**.
- Il cursore sposta il punto lungo la curva; tutte le grandezze si aggiornano per il valore corrente di `t`.
- Ruota la curva con il dito. La casella di controllo attiva/disattiva il cerchio osculatore.
- Sintassi (exp4j): `+ - * / ^`, `sin cos tan asin acos atan sinh cosh tanh exp log sqrt abs`, costanti `pi` ed `e`. Esempio: `2*sin(t)^2`.
## Tabella dei punti
L'icona della tabella apre una schermata separata (`PointsActivity`) con le coordinate x(t), y(t), z(t) dei punti della curva corrente. Imposta **t da**, **t a** e il **passo**, quindi tocca **Calcola**; i valori predefiniti sono l'intervallo corrente e 1/10 della sua lunghezza. Vengono visualizzati fino a 2000 punti. Il testo è selezionabile, quindi può essere copiato.
## Salvataggio delle curve
- **Salva (icona del disco):** salva la curva corrente (x, y, z e intervallo) con un nome; il salvataggio con un nome esistente sovrascrive il valore.
- **Le mie curve (icona della cartella):** elenca le curve salvate. Toccane una per caricarla e disegnarla; tieni premuto a lungo per eliminarla.
- Le curve vengono salvate sul dispositivo (SharedPreferences) e persistono anche dopo il riavvio dell'app.
## Menu (⋮)
La barra superiore contiene le icone per Salva e Le mie curve, oltre a Esempi e Lingua (se c'è spazio) e un menu a discesa ⋮ (Informazioni):
- **Esempi:** elica, cerchio, cubo ritorto, curva di Viviani, nodo trifoglio. Selezionandone uno, i campi vengono compilati e la curva viene disegnata.
- **Lingua:** Automatica (sistema), Inglese, Bulgaro, Francese, Tedesco, Spagnolo.
- **Aiuto:** una breve descrizione dell'app, collegamenti ad altre app dell'autore e aiuto per l'app.
## Lingue
L'interfaccia utente è disponibile in inglese (predefinito), bulgaro, francese, tedesco e spagnolo. Di default segue la lingua del telefono; il menu consente di selezionare manualmente una lingua (la scelta viene memorizzata). Per aggiungere una lingua, copia `res/values/strings.xml` in `res/values-XX/` (XX è il codice della lingua), traduci i valori, quindi aggiungi il codice a `LANG_CODES` e il nome a `setupLanguageSpinner()` in `MainActivity.java`.
## Quantità visualizzate
| Quantità | Formula | Significato |
| **r(t)** | (x(t), y(t), z(t)) | Posizione del punto |
| **\|r'\|** (velocità) | √(x'² + y'² + z'²) | Velocità lungo la parametrizzazione |
| **s** (lunghezza dell'arco) | ∫ₐᵗ \|r'(u)\| du | Distanza percorsa da a a t (regola di Simpson) |
| **κ** (curvatura) | \|r' × r''\| |r'|³ | Velocità di curvatura della curva. Linea: 0. Cerchio di raggio R: 1/R |
Pρ (raggio di curvatura) | 1/κ | Raggio del cerchio di migliore approssimazione. ∞ quando κ = 0 |
τ (torsione) | (r' × r'')·r''' / |r' × r''|² | Quanto la curva si discosta dal piano. Curva piana: 0. Destrorsa: τ > 0, sinistrorsa: τ < 0 |
T (tangente) | r' / |r'| | Vettore unitario lungo la direzione del moto (rosso) |
N (normale principale) | B × T | Vettore unitario verso il centro di curvatura (verde) |
B (binormale) | (r' × r'') / |r' × r''| | Perpendicolare al piano osculatore (blu) |
**a_T** | (r'·r'') / |r'| | Accelerazione tangenziale: variazione di velocità |
**a_N** | κ·|r'|² | Accelerazione normale: variazione di direzione. L'accelerazione totale è a_T·T + a_N·N |
**Centro di curvatura** | C = r + ρ·N | Centro del cerchio osculatore |
**Cerchio osculatore** | giace nel piano (T, N), centro C, raggio ρ | Il cerchio che tocca la curva di ordine più elevato nel punto (arancione) |
### Piani del sistema di riferimento
- **Piano osculatore:** formato da T e N, vettore normale B
- **Piano normale:** formato da N e B, vettore normale T
- **Piano raddrizzante:** formato da T e B, vettore normale N
### Formule di Frenet-Serret
(s è la lunghezza dell'arco)
- dT/ds = κ·N
- dN/ds = −κ·T + τ·B
- dB/ds = −τ·N
Curvatura e torsione determinano univocamente una curva, a meno di un movimento rigido dello spazio.
## Come funziona
r', r'' e r''' vengono calcolati numericamente con differenze finite centrali (passo H = 10⁻³), quindi vengono applicate le formule. La lunghezza dell'arco utilizza la regola di Simpson (200 intervalli).
Basta un clic per installare i file XAPK/APK su Android!