che sto ricercando la matematica per un ray tracer, ma io non sto seguendo una transizione che è fatto in quasi ogni articolo che ho letto sull'argomento. Questo è quello che ho:Come impostare l'equazione quadratica per un'intersezione raggio/sfera?
Formula per una sfera:
(X - Cx)^2 + (Y - Cy)^2 + (Z - Cz)^2 - R^2 = 0
dove r è il raggio, C è il centro, e X, Y, Z sono tutti i punti della sfera.
Formula per una linea:
X + DxT, Y + DYT, Z + DZT
dove D è un vettore di direzione normalizzato per la linea e X, Y, Z sono tutti i punti sulla linea, e T è un parametro per qualche punto della linea.
Sostituendo i componenti della linea nell'equazione sfera, otteniamo:
(X + DxT - Cx)^2 + (Y + DYT - Cy)^2 + (Z + DZT - Cz)^2 - R^2 = 0
Seguo tutto fino a quel punto (almeno penso di sì), ma poi ogni tutorial che ho letto fa un salto da quello a un'equazione quadratica senza spiegarlo (questo è copiato da uno dei siti, in modo che i termini sono un po 'diverso dal mio esempio):
a = Xd^2 + Yd^2 + Zd^2
.210B = 2 * (Xd * (X0 - Xc) + Yd * (Y0 - Yc) + Zd * (Z0 - Zc))
C = (X0 - Xc)^2 + (Y0 - Yc)^2 + (Z0 - Zc)^2 - Sr^2
Ottengo come poi risolvere per T usando la formula quadratica, ma non capisco come ottengano l'equazione quadratica dalle formule sopra. Suppongo che sia solo un pezzo di conoscenza matematica comune che ho dimenticato da tempo, ma cercare su Google come "impostare un'equazione quadratica" non ha dato alcun risultato.
Mi piacerebbe davvero capire come arrivare a questo punto prima di passare, come non mi piace la scrittura di codice non comprendere appieno.
È un po 'difficile leggere tutti i simboli. Penso di sapere come rispondere alla tua domanda, ma puoi indicarmi uno dei tutorial con cui hai problemi in modo da poter fornire un contesto? Inoltre, non hai terminato la frase nel mezzo della domanda: "X, Y, Z sono tutti i punti sulla linea, e T è ...". –
http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter1.htm http://www.codeproject.com/KB/graphics/Simple_Ray_Tracing_in_C_.aspx C'è un terzo, ma non lo faccio penso che l'html per il sito sia reso correttamente, e alcuni pezzi delle equazioni sembrano mancare, quindi sto ignorando quello. Ho appena aggiustato la frase incompleta. –
La domanda potrebbe essere più chiara se si distingue tra X, Y, Z nella formula per una sfera (variabili sconosciute) e X, Y, Z nella formula per la linea (punto noto sulla linea). Quando si sostituisce la linea nella sfera, si converte da una coppia di equazioni con X, Y, Z e T sconosciute a un'equazione con solo T sconosciuto (che può quindi essere risolto), ma l'uso di X, Y, Z nel equazione sostituita indica che questi sono ancora sconosciuti. –