Mapping delle coordinate dello schermo al piano complesso

Partendo dalle informazioni presentate nella sezione Rendering iniziale dell'insieme di Mandelbrot con l'elemento canvas, esamineremo ora come eseguire il mapping delle coordinate dello schermo al piano complesso.

Mandelbrot 1 presenta diversi problemi, tra cui l'impossibilità di visualizzare aree interessanti dell'insieme di Mandelbrot tramite lo zoom, come suggerito da questo rettangolo rosso semitrasparente:

Cattura di schermata di Mandelbrot Explorer con la casella di zoom visualizzata

Qui il rettangolo rosso semitrasparente creato con un'operazione di selezione mediante clic e trascinamento indica quale area dell'insieme di Mandelbrot ingrandire. In poche parole, gli angoli in alto a sinistra e in basso a destra del rettangolo definiscono una "casella di zoom". Dobbiamo ora trasformare i punti del sistema di coordinate del canvas per gli angoli in alto a sinistra e in basso a destra della casella di zoom negli analoghi punti del sistema di coordinate del piano complesso, per poter disegnare tale area dell'insieme di Mandelbrot (e quindi ingrandire l'insieme).

Per trasformare un punto del sistema di coordinate del canvas (rosso) nel sistema di coordinate del piano complesso (verde) supponiamo che tutte le trasformazioni delle coordinate siano proporzionali:

Sistema di coordinate del canvas sovrapposto al sistema di coordinate del piano complesso

In altre parole:

Equazione di proporzionalità 1 (1)

Analogamente abbiamo:

Equazione di proporzionalità 2 (2)

e

Equazione di proporzionalità 3 (3)

Risolvendo (2) e (3) per x’ e y’ si ottengono le equazioni di trasformazione richieste:

Risultato dell'equazione di proporzionalità

Tuttavia, poiché x’ e y’ dipendono da ReMax, ReMin, ImMax e ImMin, dobbiamo scegliere questi valori in modo che l'immagine di Mandelbrot di cui eseguiamo il rendering non sia inclinata in direzione x- o y-. In poche parole, risolviamo (1) per stabilire uno degli estremi del piano complesso, ad esempio ReMax, come funzione degli altri tre (garantendo un piano complesso proporzionale). Ad esempio:

Equazione di proporzionalità di base

Pertanto, dato il punto (x, y) del sistema di coordinate del canvas, il punto coincidente analogo nel piano complesso (x’, y') può essere calcolato usando le equazioni di trasformazioni precedenti, come mostrato qui:

Sistema di coordinate del canvas sovrapposto al sistema di coordinate del piano complesso

In questo esempio abbiamo:

Costanti usate nell'immagine precedente

Pertanto, le equazioni di trasformazione delle coordinate diventano:

Equazioni di trasformazione delle coordinate risolte in base alle costanti precedenti

Pertanto, il punto del sistema di coordinate del canvas precedente (30, 20) diventa (-1.3, 0.4) nel sistema di coordinate del piano complesso.

Per calcolare (x', y') dato (x, y), risolvere le equazioni di trasformazione per x e y:

Equazioni di trasformazione semplificate

Ad esempio, il punto del piano complesso (1.1, -1.2) è presente nel canvas in corrispondenza del punto (90, 60), come previsto.

Nota  Per una procedura alterativa per la generazione delle equazioni di trasformazione delle coordinate riportate sopra, vedi Come eseguire il mapping dei punti tra sistemi di coordinate 2D.

Dopo aver stabilito che è possibile eseguire il mapping di un punto del canvas a un punto nel piano complesso, possiamo esaminare in che modo implementare una casella di zoom. Tuttavia, per semplificare l'implementazione della casella di zoom, riscriviamo innanzitutto Mandelbrot 1 come descritto in Semplificazione dell'implementazione della casella di zoom.

Argomenti correlati

Semplificazione dell'implementazione della casella di zoom
Come eseguire il mapping dei punti tra sistemi di coordinate 2D

 

 

Mostra:
© 2014 Microsoft