Open cruzki opened 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
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
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.