Mi è stato chiesto di intervenire in questo thread. Ammesso che l'OP sia ancora interessato (in genere questi velleitari "progetti" giovanili sono alquanto ondivaghi e incostanti), la soluzione è veramente banale, purché non ci ostini a percorrere strade impraticabili per uno studente di quell'età.
Di primo acchito è facile farsi venire in mente non meno di una decina di soluzioni elementari al problema euclideo della circonferenza passante per tre punti non allineati, che peraltro si riduce al calcolo del circocentro di un triangolo: tra metodi geometrici, analitici, algebrici, matriciali e trigonometrici si possono riempire paginate di diversi approcci. Tuttavia, quasi nessuno di essi riveste interesse computazionale.
La Via Regia in geometria computazionale consiste del calcolare l'intersezione delle mediane di due lati arbitrariamente scelti, che avviene appunto nel circocentro. Tipicamente si ottiene un sistema lineare e lo si risolve poi in precalcolo con i metodi più idonei (i.e. Cramer, che ai miei tempi si studiava al biennio del Liceo Scientifico insieme agli altri metodi di risoluzione dei sistemi lineari, quindi oggi forse ne parlano verso il quinto anno di una laurea magistrale mentre sul Lang ormai studiano solo i dottorandi più irriducibili ).
Ciò può essere realizzato impiegando unicamente una sequenza di operazioni elementari, minimizzando in particolare moltiplicazioni e divisioni (eterno punctum dolens dell'architettura x86 e di tutti i compatibili a venire) e
senza ricorso a funzioni della libreria matematica: ci si guardi bene dall'invocare addirittura la pow() per calcolare il quadrato di un binomio, per siffatte alzate di genio è prevista la fantozziana crocefissione in sala mensa con clisterone purificatore da cinque litri.
L'
immagine allegata, a meno di errori di digitazione, riporta le banalissime formulette machine-ready ottenute dalla risoluzione per una qualsiasi via (analitica, geometrica o matriciale) del problema dell'intersezione, splittate in funzione della massima efficienza di calcolo.
Una volta ottenute in input le tre coppie di coordinate cartesiane richieste, si tratta di precalcolare dinamicamente in totale sette valori, usandoli poi nelle tre formulette finali, riportate in rosso. Si presti attenzione al fatto che
il determinante può diventare nullo, dando luogo ad un caso degenere che andrà gestito a parte. Inoltre sarebbe opportuno verificare a monte che i tre punti non siano allineati, verificando che uno qualsiasi di essi non soddisfi l'equazione della retta passante per gli altri due.
Come ultimo atto, si sostituiscono i tre valori facilmente ottenuti (coordinate del centro e quadrato del raggio) nella forma canonica dell'equazione della circonferenza dati centro e raggio.