Estoy investigando las matemáticas para un rastreador de rayos, pero no estoy siguiendo una transición que se hace en casi todos los artículos que he leído sobre el tema. Esto es lo que tengo:¿Cómo configurar la ecuación cuadrática para una intersección de rayos/esferas?
Fórmula para una esfera:
(X - Cx)^2 + (Y - Cy)^2 + (Z - Cz)^2 - R^2 = 0
Donde R es el radio, C es el centro, y X, Y, Z son todos los puntos en la esfera.
Fórmula para una línea:
X + DxT, Y + DYT, Z + DZT
donde D es un vector de dirección normalizado para la línea y X, Y, Z son todos los puntos de la línea, y T es un parámetro para algún punto de la línea.
Mediante la sustitución de los componentes de la línea en la ecuación de esfera, obtenemos:
(X + DxT - Cx)^2 + (Y + DYT - Cy)^2 + (Z + DZT - Cz)^2 - R^2 = 0
Sigo todo hasta ese punto (al menos creo que sí), pero luego cada tutorial que he leído hace un salto de eso a una ecuación cuadrática sin explicarlo (esto se copia de uno de los sitios, por lo que los términos son un poco diferente de mi ejemplo):
a = Xd^2 + Yd^2 + Zd^2
B = 2 * (Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc))
C = (X0 - Xc)^2 + (Y0 - Yc)^2 + (Z0 - Zc)^2 - Sr^2
Obtengo cómo resolver para T usando la fórmula cuadrática, pero no entiendo cómo llegan a la ecuación cuadrática de las fórmulas anteriores. Supongo que es solo un conocimiento matemático común que hace tiempo que olvidé, pero buscar en Google "Cómo configurar una ecuación cuadrática" tampoco ha dado realmente nada.
Realmente me gustaría saber cómo llegar a este paso antes de continuar, ya que no me gusta escribir código que no entiendo completamente.
Es un poco difícil leer todos los símbolos. Creo que sé cómo responder a su pregunta, pero ¿puede indicarme uno de los tutoriales con los que está teniendo problemas para poder proporcionar algún contexto? Además, no terminó la oración en el medio de la pregunta: "X, Y, Z son todos los puntos en la línea, y T es ...". –
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter1.htm http://www.codeproject.com/KB/graphics/Simple_Ray_Tracing_in_C_.aspx Hay un tercero, pero no lo hago Creo que el html para el sitio se está procesando correctamente, y algunas partes de las ecuaciones parecen estar ausentes, así que ignoro esa. Acabo de arreglar la oración sin terminar. –
La pregunta podría ser más clara si distinguiste entre X, Y, Z en la fórmula de una esfera (variables desconocidas) y X, Y, Z en la fórmula para la línea (punto conocido en la línea). Cuando sustituyes la línea en la esfera, conviertes de un par de ecuaciones con X, Y, Z y T desconocidas a una ecuación con T desconocida solamente (que luego puede resolverse), pero el uso de X, Y, Z en el La ecuación sustituta indica que todavía son incógnitas. –