Je fais des recherches sur les mathématiques pour un ray tracer, mais je ne suis pas une transition qui est faite dans presque tous les articles que j'ai lus sur le sujet. Ceci est ce que j'ai:Comment configurer une équation quadratique pour une intersection rayon/sphère?
Formule pour une sphère:
(X - Cx)^2 + (Y - Cy)^2 + (Z - Cz)^2 - R^2 = 0
Où R est le rayon, C est le centre et X, Y, Z sont tous les points de la sphère.
Formule pour une ligne:
X + DxT, Y + dyt, Z + DZT
où D est un vecteur de direction normalisée pour la ligne et X, Y, Z sont tous les points de la ligne, et T est un paramètre pour un point sur la ligne.
En remplaçant les composants de la ligne dans l'équation de la sphère, nous obtenons:
(X + DxT - Cx)^2 + (Y + dyt - Cy)^2 + (Z + DZT - Cz)^2 - R^2 = 0
Je suis tout jusqu'à ce point (du moins je pense), mais chaque tutoriel que j'ai lu fait un saut de cette équation quadratique sans l'expliquer (ceci est copié d'un des sites, de sorte que les termes sont un peu différent de mon exemple):
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
Je vais trouver comment résoudre T en utilisant la formule quadratique, mais je ne comprends pas comment ils arrivent à l'équation quadratique à partir des formules ci-dessus. Je suppose que c'est juste une partie de la connaissance mathématique commune que j'ai depuis longtemps oubliée, mais googler pour "Comment mettre en place une équation quadratique" n'a pas vraiment donné quelque chose non plus. Je voudrais vraiment comprendre comment arriver à cette étape avant de continuer, car je n'aime pas écrire du code que je ne comprends pas complètement.
Il est un peu difficile de lire tous les symboles. Je pense que je sais comment répondre à votre question, mais pouvez-vous me diriger vers l'un des tutoriels avec lesquels vous rencontrez des problèmes afin que je puisse vous donner un peu de contexte? De plus, vous n'avez pas terminé la phrase au milieu de la question: "X, Y, Z sont tous les points sur la ligne, et T est ...". –
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter1.htm http://www.codeproject.com/KB/graphics/Simple_Ray_Tracing_in_C_.aspx Il y a un troisième, mais je ne sais pas pense que le html pour le site est rendu correctement, et certaines parties des équations semblent être manquantes, donc j'ignore celui-là. Je viens de corriger la phrase inachevée. –
La question pourrait être plus claire si vous distinguiez entre X, Y, Z dans la formule pour une sphère (variables inconnues) et les X, Y, Z dans la formule pour la ligne (point connu sur la ligne). Lorsque vous substituez la ligne dans la sphère, vous convertissez à partir d'une paire d'équations avec inconnue X, Y, Z et T une équation avec T inconnu seulement (qui peut alors être résolu), mais l'utilisation de X, Y, Z dans le l'équation substituée indique que celles-ci sont encore inconnues. –