Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/08/2012, 06:34
gebremswar
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago de Surco, Lima - Perú
Mensajes: 266
Antigüedad: 12 años, 10 meses
Puntos: 57
Información Respuesta: medir distancia de dos puntos en una imagen

Hola Montes28, que tal.

Preparé un ejemplo:

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>@GBreagan - coordenadas</title>
  5. <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
  6. <script type="text/javascript">
  7. $(document).ready(function() {
  8.     $(document).mousemove(function(e){
  9.         $('#posicion_cursor').html("Pos x : " + e.pageX + " | Pos y : " + e.pageY);
  10.     });
  11.     var s = false; //evalúa los click's
  12.     // COORDENADAS: puntos (iX,iB) y (fX,fY)
  13.     var iX = 0; var iB = 0; var fX = 0; var fY = 0;
  14.    
  15.     $('html').on({
  16.         click:function(e){
  17.             if (!s) { // ...evalúo primer click
  18.                 iX=e.pageX;
  19.                 iY=e.pageY;
  20.                 s = true; // ¡primer click ejecutado!
  21.             } else if(s) { // ...evalúo segundo click
  22.                 fX=e.pageX;
  23.                 fY=e.pageY;
  24.                 s = false;// ¡segundo click ejecutado!
  25.                 var d = pitagoras(iX,iY,fX,fY);//llamo a mi función que está más abajo
  26.                 alert(d);//resultado - la distancia es:
  27.             }
  28.         }
  29.     })
  30.     function pitagoras(iX,iY,fX,fY){
  31.         //un poco de algebra analítica para hallar la distancia no dirigida
  32.         return r = Math.sqrt((Math.pow((iX-fX),2))+(Math.pow((iY-fY),2)));
  33.     }
  34. });
  35. </script>
  36. </head>
  37. <body>
  38. <div id="posicion_cursor" style="position:fixed"></div>
  39. </body>
  40. </html>


Debo decirte que la precisión que usa JavaScript para sus algoritmos de cálculos es notablemente menor en comparación con otros lenguajes de programación.
  • Por ejemplo: 0.119 * 100 mostraria como resultado 11.899999999999999
Un valor en JavaScript tiene 16 dígitos de precisión. Esto parece ser una de las limitaciones para efectuar cálculos matemáticos con JavaScript.

Es por eso que te recomiendo que realices el calculo matemático de la última función (la de pitágoras), una vez obtenido las coordenadas, con algún lenguaje de programación de lado del servidor como puede ser PHP para calcular el valor de la distancia exacta entre ambos puntos.

Quizá sería bueno que nos comentes en que estas pensando implementar esto.

Última edición por gebremswar; 12/08/2012 a las 06:44