Tengo una línea que pasa por los puntos B y C ¿Cómo averiguo la distancia perpendicular a un?
$$A= (4,2,1)$$ $$B= (1,0,1)$$ $$C = (1,2,0)$$
Intuitivamente, la distancia entre el punto a y el punto en la línea BC que está más cerca de Una. Y el punto en la línea que usted está buscando es exactamente la proyección de a sobre la línea. La proyección puede ser calculado utilizando el producto escalar (que a veces se conoce como "proyección del producto").
Así que usted puede calcular el vector de dirección $\mathbb{d}$ de la línea de $BC$. Esta es la diferencia de $B$$C$, dividido por la distancia:
$$\mathbb{d} = (C-B) / ||C-B||$$
Then you can define a vector from $B$ to $UN$:
$$\mathbb{v} = B - A$$
Computing the dot product between this vector and the direction vector will give you the the distance between $B$ and the projection of $$ on $AC$:
$$ t = \mathbb{v} \cdot \mathbb{d}$$
The actual projection $P$ of $$ on $AC$ is then given as
$$P = B + t \cdot \mathbb{d}$$
And finally, the distance that you have been looking for is
$$|| P - A||$$
Por supuesto, esto podría ser escrito en una un poco más corta. Tiene las ventajas de dar exactamente el punto más cercano de la línea (que puede ser un buen complemento a la informática sólo de la distancia), y puede ser implementado fácilmente. Algunos pseudocódigo:
double computeDistance(vec3 A, vec3 B, vec3 C) {
vec3 d = (C - B) / C.distance(B);
vec3 v = B - A;
double t = v.dot(d);
vec3 P = B + t * d;
return P.distance(A);
}
Puede parametrizar la línea (y que incluso no necesitará preocuparse por el hecho de que es un segmento):
$$B-C=\langle 0,-2,1 \rangle$ $ por lo que la línea es %#% $ #%
Así que para algún valor de $$\langle 1,0,1 \rangle+ t\ \langle 0,-2,1 \rangle$, llame al $t$, el vector de $k$ $A$ es ortogonal a $\langle 1,-2k,1+k \rangle$. Por lo tanto
$\langle 0,-2,1 \rangle$$
$$(\langle 1,-2k,1+k \rangle-\langle 4,2,1\rangle)\cdot \langle 0,-2,1\rangle=0$$
$$\langle -3,-2k-2,k \rangle\cdot \langle 0,-2,1\rangle=0$$
$$4k+4+k=0$$
así que ahora debe ser capaz de encontrar el punto.
Otro enfoque (una solución muy sencilla). Por el teorema de Pitágoras tenemos % $ $$ AB=\sqrt{13},\qquad AC=\sqrt{10},\qquad BC=\sqrt{5}\tag{1}$por lo tanto, $ABC$ es un triángulo agudo (desde $AB^2<AC^2+BC^2$ y así sucesivamente) y llamando a $H_A$ la proyección de $A$ $BC$, también tenemos $$ H_A B^2 - H_A C^2 = AB^2 - AC^2 = 3 \tag{2}$ $ desde $H_A B + H_A C = BC = \sqrt{5}$, $(2)$ sigue que $H_A B-H_A C = \frac{3}{\sqrt{5}}$, así: $$ H_A B = \frac{4\sqrt{5}}{5}\qquad H_A C = \frac{\sqrt{5}}{5}\tag{3}$ $ y: $$\boxed{\phantom{\sum_{j=1}^{n^2}} H_A = \frac{4}{5}C+\frac{1}{5}B = \color{red}{\left(\frac{5}{5};\frac{8}{5};\frac{1}{5}\right)},\qquad AH_A^2 = AC^2-H_A C^2 = \color{red}{\frac{49}{5}}\phantom{\sum_{j=1}^{n^2}}}\tag{4} $ $
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.