Necesito calcular la(s) intersección(es) entre dos arcos circulares. Cada arco está especificado por sus puntos extremos y su altura. La altura es la distancia perpendicular desde la cuerda que une los puntos extremos hasta el centro del arco. Utilizo esta representación porque es numéricamente robusta para arcos muy poco curvados, así como para segmentos de líneas rectas, para los que la altura es cero. En estos casos, representar un arco utilizando el centro de su circunferencia podría llevar a que el centro estuviera muy lejos de los puntos extremos del arco y, por tanto, fuera numéricamente inestable.
Mi pregunta en el nivel más alto es cómo haría para calcular los puntos de intersección, dado que los centros de los círculos de los arcos no pueden ser necesariamente calculados de forma robusta. A un nivel más bajo, me pregunto si existe una parametrización de un arco utilizando sólo la información que he indicado anteriormente (que no incluye el centro del círculo). Por supuesto, hay que tener en cuenta que la robustez numérica es mi principal preocupación aquí; de lo contrario, simplemente haría lo ingenuo y calcularía el centro del círculo para todos los arcos no lineales y esperaría lo mejor.
Editar : Fórmula para calcular el centro del círculo de arcos:
Supongamos que la longitud de la cuerda es $2t$ y la altura es $h$ . La distancia de la cuerda al centro del círculo es $c$ para que $r=h+c$ . Entonces se deduce que $c=(t^2-h^2)/2h$ que se rompe cuando $h$ es muy pequeño. El cálculo de la ubicación del centro del círculo es una simple aritmética vectorial utilizando el vector cuerda y su perpendicular.