videos ubicados puntos profe plano los julioprofe entre ejemplos ejemplo distancia cartesiano math image-processing geometry

math - ubicados - Distancia entre 2 puntos



ejemplo de distancia entre dos puntos (7)

Quiero calcular la distancia aproximada entre dos puntos, y para reducir la sobrecarga de cálculo, estoy usando la siguiente fórmula

Distancia entre (x1, y1) y (x2, y2)

Dist = Mod (x1 - x2) + Mod (y1 - y2)

Donde Mod es el modulo operador Mod (x) = | X |.

Esto parece estar funcionando.

Quiero saber si he perdido algo ...


¿Estás seguro de que tienes el operador del módulo correcto? Parece que usas MOD como ABSOLUTO

http://en.wikipedia.org/wiki/Modulo_operation

de todos modos, como dice Mehrdad, usando el teorema de Pitágoras:

Dist = Sqrt( (x1-x2)^2 + (y1-y2)^2 )


Debe ser específico en términos de distancia que desea calcular.

Fórmula de distancia: dados los dos puntos (x1, y1) y (x2, y2), la distancia entre estos puntos viene dada por la fórmula:

Esta es la fórmula estándar que usamos en la geometría Coordenada para encontrar la distancia entre los puntos y la especialización de la distancia de MinKowski para una dimensión.


Mientras obtengas el valor absoluto (como dijiste | X |) y no uses la función de módulo, eso te dará la distancia de Manhattan entre los dos puntos

Si eso es lo que quieres, entonces no te has perdido nada

Si quieres la distancia en línea recta utiliza el teorema de Pitágoras. Esto es sqrt ((x1 - x2) ^ 2 + (y1 - y2) ^ 2)


Representación gráfica de tres distancias habituales:


Su métrica de distancia está bien para una distancia aproximada . Pero (x 2 - x 1 ) 2 + (y 2 - y 1 ) 2 le dará el cuadrado de la distancia real. Siempre y cuando tengas en cuenta que es el cuadrado de la distancia, será más preciso. Y dependiendo de la arquitectura en la que implemente esto, podría ser más rápido: la multiplicación podría tomar menos tiempo que la rama en el módulo, o para las implementaciones de hardware podría tomar el mismo tiempo. Necesitará un punto de referencia para estar seguro.


Si desea comparar distancias y ahorrar tiempo, no use la distancia en sí, sino su cuadrado: (x1-x2) ^ 2 + (y1-y2) ^ 2. No tome sqrt. Entonces, sus distancias funcionarán exactamente como las normales, pero rápidamente. Contar dx = x1-x2 y dx2 = dx * dx es incluso más rápido que tomar ABS (lo dijiste en serio, no MOD realmente), porque la última es una función y tienes que pagarla.

La distancia ABS es correcta, en teoría. ¿Pero de qué sirve, si es difícil para tus objetivos?


Hice este algoritmo para calcular la distancia en línea recta entre 2 puntos:

var distance = function(x1, y1, x2, y2) { //Distance Horizantally var horizontalDistance = 0; /Distance Vertically var verticalDistance = 0; if(x1 > x2) { horizantalDistance = x1 - x2; } else { horizantalDistance = x2 - x1; } if(y1 > y2) { verticalDistance = y1 - y2; } else { verticalDistance = y2 - y1; } var answer = 0; if(verticalDistance !== 0 && horizantalDistance !== 0) { //Use the Pathagoreum Theorum answer = Math.sqrt(verticalDistance + horizantalDistance); } else if(horizantalDistance === 0) { //Use the Vertical Distance answer = verticalDistance; } else if (verticalDistance === 0) { //Use the Horizantal distance answer = horizantalDistance; } //Return the answer return answer; }