vértices - Calcule coordenadas de punto 3D usando ángulos horizontales y verticales y distancia de inclinación
hallar el perimetro del triangulo cuyos vertices son los puntos (1)
Solo una nota sobre convenciones: las coordenadas polares 2D a menudo usan (radius, theta)
, donde theta
es el ángulo ''horizontal'' o ''acimut''. Se extiende desde: theta=0
, el punto 2D (x,y) = (radius,0)
en el eje X, hasta: theta=2*PI
en el plano XY - una dirección en sentido antihorario a medida que theta
aumenta. Ahora para confundir las cosas ...
Las coordenadas esféricas tridimensionales (manteniendo un sistema de coordenadas a la derecha) a menudo usan coordenadas: (radius, theta, phi)
. En este caso, theta
se usa para el ángulo ''vertical'' o ''cenital'', que varía desde theta=0
(el eje Z) a theta=PI
(el eje -Z). phi
se usa para el ángulo acimutal.
Otros textos utilizarán diferentes convenciones, pero esto parece ser favorecido por los físicos y (algunos) textos matemáticos. Lo que importa es que elijas una convención y la uses consistentemente .
Siguiendo esto:
radius
: distancia al punto. dado un punto (x,y,z)
en coordenadas cartesianas, tenemos el radio (pitagórico): r = sqrt(x * x + y * y + z * z)
, por ejemplo, 0 <= radius < +infinity
theta
: el ángulo cenital, donde theta=0
está directamente encima (el eje + Z), y theta=PI
está directamente debajo (el eje -Z), y theta=PI/2
es lo que considerarías una ''elevación'' de 0 grados, por ejemplo,
0 <= theta <= PI
phi
: el ángulo acimutal, donde phi=0
está a la ''derecha'' (el eje + X), y al girar ''en sentido antihorario'', phi=PI/2
(el eje + Y), phi=PI
(el -X eje), phi=3*PI/2
(el eje Y), y phi=2*PI
- equivalente a phi=0
(de vuelta al eje + X). por ejemplo, 0 <= phi < 2*PI
Pseudocódigo: (funciones trigonométricas estándar de la biblioteca matemática)
Desde (radius, theta, phi)
puede encontrar el punto (x,y,z)
:
x = radius * sin(theta) * cos(phi);
y = radius * sin(theta) * sin(phi);
z = radius * cos(theta);
Por el contrario, puedes encontrar un (radius, theta, phi)
de (x,y,z)
:
radius = sqrt(x * x + y * y + z * z);
theta = acos(z / radius);
phi = atan2(y, x);
Nota: es importante usar atan2
en la ecuación final, ¡ no atan
!
Estoy tratando de aprender a calcular las coordenadas XYZ de un punto usando las coordenadas XYZ de un punto de origen, un ángulo horizontal y vertical y una distancia de 3d. Puedo hacer los cálculos simplemente proyectando los puntos en planos 2D, pero ¿hay una manera más directa de hacerlo en 3D?
Intento comprender cómo una estación total de topografía calcula las nuevas ubicaciones de puntos según su ubicación medida, la distancia en 3D (pendiente) que mide a un punto nuevo y los ángulos horizontales y verticales medidos que miran a la nueva ubicación del punto.
Gracias,
mi