AnderPijoan / cat2osm

Do What The F*ck You Want To Public License
11 stars 11 forks source link

Reducir el número de nodos en una vía #22

Open cruzki opened 12 years ago

cruzki commented 12 years ago

Se trata de eliminar nodos redundantes en las vías. Por ejemplo: A ------ B --------C El nodo B es redundante. Nótese que en algunos casos podemos considerar el nodo redundante aunque perdamos precisión. Hay que pensar también en los objetos redondeados.

cruzki commented 12 years ago

El proceso podría ser algo así.

if (Math.abs(atan2(x1-x2,y1-y2)-atan2(x1-x3,y1-y3))<epsilon)

[1] http://maralboran.org/wikipedia/index.php/%C3%81ngulo_entre_dos_rectas_del_plano_%281%C2%BABach%29 [2] http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Math.html#atan2%28double,%20double%29

AnderPijoan commented 12 years ago

if (Math.abs(atan2(x1-x2,y1-y2)-atan2(x1-x3,y1-y3))>3.1) elimina todos los nodos que tengan menos de 3 grados if (Math.abs(atan2(x1-x2,y1-y2)-atan2(x1-x3,y1-y3))>3) elimina los que tengan menos de 10 grados