2011-01-27 7 views
6

ho trovato un bel example come trovare il punto centrale di un poligono (and here in JS):trovare il punto centrale di un poligono in js

-> Vedere this jsfiddle esempio

Così, con questo poligono

var polygon = [ 
    {'x':770, 'y':400}, 
    {'x':529, 'y':643}, 
    {'x':320, 'y':494}, 
    {'x':424, 'y':381}, 
    {'x':459, 'y':369} 
]; 

dovrei trovare il punto centrale in questo modo:

var con = new Contour(); 
    con.pts = polygon; 
    document.write(con.centroid) 

Ma con.centroid è undefined.

Cosa sto sbagliando? Grazie in anticipo!

risposta

2

Si chiama la modalità di costruzione Contour prima che il prototipo Contour sia stato definito. Nel suddetto jsfiddle, sposta il tuo document.write fino alla fine e tutto andrà ... meglio.

Inoltre, è necessario chiamare in realtà la funzione centroid si è definito:

var c = con.centroid(); 
document.write(c.x); 
document.write(c.y); 
+0

ERRm .. sì .. ho davvero bisogno di fare di più di questa roba prototipo. grazie. – koko

5

Ecco versione fissa: jsfiddle

Hai fatto qualche errore - prima di tutto quello che hai dichiarato Contour e Punto dopo averli chiamati - quindi non sei stato in grado di usarlo. - hai chiamato centroide come se fosse una proprietà ed era una funzione quindi ti mancavano parentesi() dopo il centroide - nel valore di ritorno della funzione centroide hai passato x e y come un oggetto dove il punto di funzione prende x e y come valori separati

3

Prima di tutto è necessario definire tutto prima di creare il "nuovo profilo". Inoltre, il centroide è una funzione, quindi dovresti invocarlo usando con.centroid(). Apparentemente vuoi che quella funzione restituisca un "punto" ma non penso che sia il modo corretto di farlo. Date un'occhiata a questo http://jsfiddle.net/SsCux/3/

PS: Penso che ci sia qualcosa di sbagliato nel calcolo della superficie