Approssimazione di un insieme di punti |
Copyright Camillo Trevisan, luglio 1999. trevisan@iuav.it |
Download programma freeware ELLISSE.EXE (32 kB)
Download programma freeware OVALE4.EXE (38 kB)
Download programma freeware OVALE8.EXE (50 kB)
I tre programmi approssimano un insieme di punti di controllo, calcolando i parametri - relativi ad una ellisse oppure ad un ovale definito da 4 oppure 8 centri generatori - che rendono minimo lo scarto quadratico medio delle distanze dei punti dati dalla curva approssimante trovata.
I programmi richiedono l'inserimento dei valori iniziali approssimati dei parametri che definiscono le curve (comprese la traslazione del centro e la rotazione degli assi), fornendo, dopo alcune iterazioni, i coefficienti finali e tutti gli scarti (le distanze tra ciascun punto di controllo e la curva approssimante trovata).
Alcune caratteristiche dei programmi sono comuni:
· Sono programmi freeware, di libero uso e distribuzione.
· Funzionano nel sistema operativo Windows (9x, NT).
· Richiedono un unico file di ingresso, nel
formato DXF standard (prodotto, ad esempio, da AutoCAD versione
12 o successive, ma in quel formato), contenente una o più
polilinee 2D (aperte o chiuse), ciascuna formata da un massimo di
2000 punti. Nei due programmi per l'approssimazione di ovali il
numero delle polilinee di ingresso può essere compreso tra 1 e
30: infatti, in questi casi gli ovali concentrici mantengono
invariati alcuni parametri (i cateti dei triangoli generatori,
oltre alle coordinate X, Y del centro e la rotazione degli assi
di simmetria) e pertanto possono essere approssimate contemporaneamente più curve concentriche e coassiali.
Nel programma ELLISSE è prevista, di norma, una sola curva di
ingresso: infatti, ellissi coassiali ed equidistanti tra loro sugli assi sono caratterizzate da parametri tutti diversi. Nel caso
siano presenti più curve (anche in questo caso, fino ad un
massimo di 30), verrà mantenuta costante la distanza tra i
fuochi e, pertanto, le varie ellissi approssimanti non saranno equidistanti tra
loro sugli assi, pur mantenendo lo stesso centro e la stessa
rotazione degli assi.
Nel caso il file di ingresso contenga più di una polilinea, è
importante notare che la selezione delle stesse - al momento
della creazione del file DXF - deve avvenire in sequenza, la
stessa della successiva introduzione dei valori dei raggi o dei
semiassi: ad esempio dalla più esterna alla più interna o
viceversa. Solo in questo caso, infatti, sarà possibile
assegnare poi i corretti valori iniziali, durante lo svolgimento
dei programmi di approssimazione. Nel caso di selezione
complessiva - ad esempio mediante finestra di selezione - la
sequenza delle polilinee scritte sul file potrebbe essere casuale
o comunque non corretta. In tutti i casi è opportuno attivare
l'opzione che consente la selezione delle entità grafiche.
Tutti i programmi richiedono di inserire i valori approssimati
delle coordinate X ed Y del centro delle curve e la rotazione
dell'asse maggiore, espressa in gradi e calcolata con verso
orario rispetto all'asse X.
Per l'ellisse viene poi richiesto:
- La distanza stimata tra il centro dell'ellisse ed un fuoco.
- La lunghezza stimata del semiasse maggiore dell'ellisse (nel
caso di più curve, questa richiesta sarà ripetuta per ciascuna
polilinea).
Per l'ovale a 4 centri:
- La lunghezza stimata del cateto, del triangolo generatore,
posto sul semiasse maggiore dell'ovale.
- La lunghezza stimata del cateto, del triangolo generatore,
posto sul semiasse minore dell'ovale.
- Per ciascuna polilinea contenuta nel file di ingresso, la
lunghezza stimata del raggio del minore dei due archi di cerchio
che definiscono l'ovale (il raggio maggiore è infatti dato dal
raggio minore sommato all'ipotenusa del triangolo generatore; il
semiasse maggiore è dato dal raggio minore sommato al cateto
posto su quell'asse ed, infine, il semiasse minore è dato dalla
differenza tra il raggio maggiore e il cateto posto sull'asse
minore stesso).
Per l'ovale a 8 centri (vedi figura):
- La lunghezza stimata del segmento OA.
- La lunghezza stimata del segmento OB.
- La lunghezza stimata del segmento OC.
- La lunghezza stimata del segmento DC.
- Per ciascuna polilinea contenuta nel file di ingresso, la
lunghezza stimata del raggio AE. Anche in questo caso gli altri
parametri sono calcolati di conseguenza.
Da notare che l'introduzione di parametri
iniziali non congruenti con le caratteristiche geometriche delle
curve, può comportare la mancata convergenza dell'iterazione. Si
consiglia pertanto di definire accuratamente tali valori
iniziali, con un errore massimo stimato del 10/15 percento.
L'introduzione di uno o più parametri iniziali poco congruenti
tra loro o con i punti di controllo, può comportare - in alcuni
casi - la convergenza verso valori che non costituiscono il
minimo assoluto. Il metodo di calcolo, infatti, consiste nel
trovare - per mezzo di algoritmi pseudostocastici - la sella
minima di una ideale superficie definita dagli infiniti scarti
quadratici medi ottenuti variando i parametri generatori: nel
caso i valori iniziali siano vicini a quelli finali tale ricerca
sarà condotta senz'altro con successo; viceversa, potrebbe
accadere che l'algoritmo iterativo venga "catturato" da
un minimo locale, posto sul "percorso" tra il punto di
partenza - definito dai valori iniziali - e il vero minimo
assoluto. In tutti i casi è pertanto utile verificare il buon
esito dell'iterazione, modificando i valori di partenza,
controllando che, al contrario, i valori finali rimangano
costanti.
Da notare, infine, che i due programmi per l'approssimazione di
ovali sono necessariamente tendenzialmente instabili: infatti,
mentre nel caso dell'ellisse il programma deve verificare la
coerenza dei dati rispetto ad un'unica curva, per l'ovale la
verifica deve essere eseguita su quattro o otto archi di cerchio.
Mentre, fissati i due semiassi, esiste una sola ellisse con quei
valori, al contrario esistono infiniti ovali - sia a 4 sia a 8
centri - con le stesse misure degli assi e diversa curvatura: nel
caso degli ovali, pertanto, diviene indispensabile disporre di
punti di controllo posti nelle vicinanze dei raccordi tra gli
archi.
Il tempo di calcolo dipende - oltre che, evidentemente, dal
numero dei punti di controllo - anche dalla stima dei valori
iniziali: tanto più questi saranno vicini ai valori finali,
tanto minore sarà il numero di iterazioni. E' comunque
consigliato l'uso di un computer veloce, mentre non è richiesta
la presenza di molta memoria RAM.
· Tutti i programmi producono tre file di uscita:
- Un file di testo (nome standard ELLISSE.TXT
oppure OVALE4.TXT o OVALE8.TXT), in formato ASCII, contenente le
coordinate dei punti di controllo di ingresso; la sequenza delle
iterazioni; i coefficienti finali e gli scarti disaggregati.
Questi ultimi si riferiscono alla distanza di ciascun punto di
controllo dalla curva approssimante: un valore positivo indica che
il punto è esterno alla curva approssimante, negativo che è
interno.
I singoli scarti possono essere affiancati da uno o due
asterischi: nel caso il valore assoluto della distanza di un
punto dalla curva approssimante sia maggiore del doppio dello SQM
(scarto quadratico medio) il punto verrà segnalato da due
asterischi; se la distanza è maggiore dello SQM verrà inserito
un solo asterisco. Nel caso la distanza sia minore dello SQM non
verrà inserito nessun asterisco.
- Un file di testo (nome standard ELLISSE.COE oppure OVALE4.COE o OVALE8.COE), in formato ASCII, contenente il nome del file DXF di ingresso, il numero dei coefficienti (variabili in funzione del numero di curve) e i valori iniziali dei coefficienti. Questo file può essere usato - nel caso di prove ripetute - per evitare l'inserimento dei dati di ingresso. Alla prima domanda del programma, infatti, inserendo un nome con suffisso COE anziché DXF il programma aprirà il file e proseguirà il calcolo senza richiedere ulteriori dati. Questo file potrà essere modificato per mezzo di un qualsiasi editor di testo.
- Un file di testo (nome standard ELLISSE.DXF
oppure OVALE4.DXF o OVALE8.DXF), in formato DXF standard - e
pertanto rappresentabile mediante moltissimi programmi di grafica
(compreso, ad esempio, Paint Shop) e CAD -, contenente le curve approssimanti e i punti di controllo. Tutti i file prodotti
prevedono i seguenti layer:
Maggiore_scarto_doppio, colore rosso: contenente i
punti di controllo (costituenti le polilinee di ingresso)
caratterizzati da una distanza dalla curva approssimante maggiore
del doppio dello SQM (per identificare un punto con una piccola
croce, attivare, in Autocad, il comando PDMODE, fornendo il
parametro 3; e PDSIZE, seguito dalla dimensione della croce).
Scarto, colore bianco: contenente i punti di
controllo caratterizzati da una distanza dalla curva approssimante maggiore dello SQM.
Minore_scarto, colore giallo: contenente i punti di
controllo caratterizzati da una distanza dalla curva approssimante minore o uguale allo scarto quadratico medio.
Assi, colore giallo: contenente gli assi di
simmetria della curva approssimante.
Per i programmi OVALE4 e OVALE8:
Archi, colore bianco: contenente gli archi di
cerchio che compongono l'ovale o gli ovali approssimanti.
Raggi, colore azzurro: contenente i raggi dei
cerchi che compongono l'ovale o gli ovali approssimanti, posti in
corrispondenza ai punti di giunzione.
Triangolo, colore rosso: contenente i lati dei
triangoli fondamentali che definiscono l'ovale o gli ovali approssimanti.
Per il programma ELLISSE:
Ellisse, colore bianco: contenente
l'ellisse approssimante composta da 500 segmenti (calcolata
matematicamente e non definita come primitiva DXF, meno precisa).
Cateti, colore verde: contenente i segmenti che
uniscono i due fuochi dell'ellisse con il vertice superiore
dell'asse minore dell'ellisse.
Visitatori dal 02/05/2000 Ultimo aggiornamento: 30/7/1999 |