Punti equispaziati su una spirale

Plepp
Salve ragazzi,
vorrei disegnare una spirale ricoperta da un certo numero $N$ di dischetti i cui centri $p_i$ giacciono sulla spirale e sono alla stessa "distanza" l'uno dall'altro; più precisamente vorrei che la lunghezza della porzione di spirale che congiunge $p_i$ e $p_{i+1}$ sia la stessa per ogni $i$.

Sono partito parametrizzando la spirale come
\[
\rho(\theta)=a\theta,\quad \theta \in [0,2n\pi],\ a>0
\]
dove $n$ è il "numero di giri" ed è fisso. La lunghezza tra $0$ e $\theta$ viene una roba $s(\theta)$ proporzionale a
\[
\theta\sqrt{1+\theta^2}+\ln(\theta+\theta\sqrt{1+\theta^2});
\]
in particolare la spirale è lunga $L:=s(2n\pi)$
L'idea era quella di invertire $s(\theta)$, cioè calcolare $\theta(s)$, prendere $N$ punti equidistanti $s_i\in [0,L]$ scegliere (uso le coordinate polari)
\[
p_i:=(\rho(\theta(s_i)),\theta(s_i)).
\]

Il problema di questo approccio è che non si sa calcolare esplicitamente l'inversa di $s(\theta)$.

Come risolvere? Approccio numerico?

Risposte
Raptorista1
La funzione è piacevolmente monotona, puoi sfoderare l'artiglieria numerica senza problemi.

Plepp
Ciao Raptorista, cosa consigli di fare?

Altrimenti, che tu sappia, esiste una funzione di Tikz che fa ciò che mi serve?

dissonance
[ot]In pratica, se si usa TikZ e si vuole disegnare un braccialetto di perline arrotolato sul tavolo, ci vuole come minimo il metodo di Newton. :-D[/ot]

Raptorista1
Se lo vuoi fare direttamente nel disegno, non saprei.
Non conosco Tikz. Io farei prima il calcolo in un processo a parte, salverei i valori degli angoli per cui disegnare un pallino e poi li disegnerei. Quest'ultima parte forse si può fare con Tikz, se hai modo di leggere dati da un file esistente, oppure con uno script in Python o altro.

Plepp
Alla fine ho cambiato spirale, in modo tale che venissero conti più facili. Con la spirale logaritmica si riesce a calcolare esplicitamente $\theta(s)$. 8-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.