2011-01-27 9 views
6

he encontrado un buen example cómo encontrar el punto central de un polígono (and here in JS):hallazgo punto central de un polígono en js

-> Ver this jsfiddle ejemplo

Así pues, con este polígono

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

debería encontrar el punto central de este modo:

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

Pero con.centroid es undefined.

¿Qué estoy haciendo mal? ¡Gracias de antemano!

Respuesta

2

Llamarás al constructor Contour antes de que se haya definido el prototipo Contour. En dicho jsfiddle, mueva su document.write hasta el final, y todo irá ... mejor.

Además, es necesario llamar realmente la función centroid definió:

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

errm .. sí .. yo realmente necesitan hacer más cosas de este prototipo. gracias. – koko

5

Aquí es versión fija: jsfiddle

Usted ha hecho algunos errores - primero de todo lo que se ha declarado contorno y Señalar después de llamarlos; por lo tanto, no fue capaz de usarlo. - llamó al centroide como si fuera propiedad y era una función por lo que le faltaban corchetes() después del centroide - en el valor de retorno de la función centroide pasaron xey como un Objeto donde el punto de función toma xey como valores separados

3

Antes que nada debe definir todo antes de crear su "nuevo Contorno". Además, centroide es una función, por lo que debe invocarla usando con.centroid(). Aparentemente quieres que esa función devuelva un "punto", pero no creo que sea la forma correcta de hacerlo. Echar un vistazo a este http://jsfiddle.net/SsCux/3/

PS: Creo que hay algo mal en el cálculo del área

Cuestiones relacionadas