15 votos

El punto más cercano en el borde del círculo desde el punto fuera / dentro del círculo

Bien, yo soy la programación de un plugin para un juego que requiere de mí para conseguir el punto más cercano de un círculo cuando todo lo que tienes es un punto B, que está fuera del círculo y el radio del círculo, y la ubicación del centro del círculo.

Decir que tengo esta situación: diagram

Así que, ¿cómo iba yo a ser capaz de obtener las coordenadas del punto C? Necesito una formula que me permita calcular esas coordenadas, cuando yo sólo sé que el radio del círculo y las coordenadas de B. dibujé la línea para facilitar su comprensión, pero todo lo que puedo comenzar con es sólo el círculo y el punto B. AH, otra cosa, B no es un punto estático, cada vez que este cálculo será ejecutado B será en otra posición.

Y, como un bono (no es realmente necesario) te importa a mostrar un ejemplo sobre cómo hacer la misma cosa, pero luego, cuando el punto B está en el interior del círculo.

Gracias de antemano!

19voto

example Puntos 1177

$$ \vec C = \vec A + r\frac{(\vec B - \vec A)}{||\vec B - \vec A||} $ $ Donde$r$ es el radio del círculo. Funciona para puntos tanto dentro como fuera del círculo. Imagine que$(\vec B - \vec A)$ sea un vector en la dirección de$\vec B$ y$\frac{(\vec B - \vec A)}{||\vec B - \vec A||}$ así es el mismo vector pero con una longitud de$1$. Al multiplicarlo con$r$, "camina en esa dirección" una distancia total de$r$, alcanzando así el círculo.

Con coordenadas$\vec A = (A_x, A_y)$ etc. esto lee$$ C_x = A_x + r\frac{B_x-A_x}{\sqrt{(B_x-A_x)^2+(B_y-A_y)^2}} $ $$$ C_y = A_y + r\frac{B_y-A_y}{\sqrt{(B_x-A_x)^2+(B_y-A_y)^2}} $ $

i-Ciencias.com

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.

Powered by:

X