Pregunta

¿Cómo puedo calcular el arco entre dos círculos? El arco debe ser tangente a los dos puntos en los círculos.

Esta es una imagen que ilustra la misma. Estoy tratando de código y calcular el arco naranja y el arco azul.

text alt

Más detalles:

Su subprograma debe tener 2 modos: 2D y 3D. El usuario debe ser capaz de cambiar entre ellas pulsando la barra espaciadora. En el modo 2D, el usuario puede editar la posición de cuatro puntos de control A, B, C y D y debe ver 4 arcos circulares definidas por estos puntos como sigue. Las mentiras de arco rojos en un círculo de centro A y radio || AB ||. El arco mentiras verdes en un círculo de centro C y el radio || CD ||. Las mentiras de naranja de arco en un círculo de apoyo que es tangente a la circunferencia de soporte del arco rojo en B y también tangente al círculo verde en un punto E, que debe calcular su código. Este círculo de soporte no se separe A y C (es decir, A y C debe ser o bien tanto en ese círculo o fuera de ella). Del mismo modo, el arco azul se encuentra sobre un círculo que hace A y C no separado y que es tangente a la circunferencia de soporte del arco verde en D y también es tangente a la circunferencia de soporte del arco rojo en un cierto punto F que su deber programa calcular. El arco rojo corre en sentido horario desde F a B. La naranja arco carreras de B a E. Las carreras de arco verdes de E a D. El arco pistas azules de la parte posterior D a F. Estas cuatro arcos forman un límite suave de una región S de el avión. Tenga en cuenta que dependiendo de la posición de los puntos de control, el naranja y arcos azules pueden ser cada uno ya sea cóncava o convexa. En la siguiente figura, el arco azul es cóncava. (Foto arriba)

¿Fue útil?

Solución

Hay muchos "círculos tangentes"!

text alt

Otros consejos

En términos generales, no se puede. Dibujo de líneas rectas a través de AB y CE, y se extienden hasta el punto de intersección. Llame a la intersección M. Se puede dibujar un arco a través de B y E que es tangente a los círculos si y sólo si BM = EM.

Sea G el centro del círculo para el arco entre B y E y H del círculo para el arco entre F y D.

El punto clave es que una línea que interseca un círculo es una línea tangente si y sólo si es perpendicular al radio en el punto de intersección. Esto significa que si usted tiene dos círculos tangentes, entonces el punto tangente y los centros de los círculos son colineales.

Así que esto significa que el centro G es la intersección de la línea definida por B y A y la línea definida por E y C. De manera similar, el centro H es la intersección de la línea definida por A y F y la línea definida por C y D.

En vista de estos centros, se puede determinar los radios de los dos círculos sólo de la distancia desde el centro hasta el punto de tangencia. Desde allí se puede utilizar métodos estándar para dibujar el arco dado sus puntos finales y el círculo que forma parte.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top