여기서 는 로 바꿔 쓸 수 있으며, 광선 와 삼각형의 교차점을 구하는 것은 방정식 의 해를 구하는 것과 같다. 즉, 다음의 방정식으로 표현할 수 있다.
여기서 로 정의하면, 는 크라머(Cramer)의 공식에 의해 구할 수 있다.
위의 식은 다음과 같이 다시 정리할 수 있다.
최종적으로, 이것을 의사코드로 표현하면 다음과 같다.
// o is ray's original, d is direction, v1, v2, v3 is triangle coordinate
RayTriangle_Intersect(o, d, v1, v2, v3)
Vertex e1 = v2 - v1
Vertex e2 = v3 - v1
Vertex p = d cross e2
Scalar a = e1 dot p
if(a > -epsilon and a < epsilon)
return NO_INTERSECTION<br/>
Scalar f = 1 / a
Vertex s = o - v1
Scalar u = f * (s dot p)
if(u < 0 or u > 1)
return NO_INTERSECTION
Vertex q = s cross e1
Scalar v = f * (d dot q)
if(v < 0 or u + v > 1)
return NO_INTERSECTION
Scalar t = f * (e2 dot q)
return INTERSECTION // u, v, t is solved
여기서 스칼라(scalar) 타입의 변수는 부동소수점 타입이며, Vertex는 x, y, z 3개의 공간좌표를 가진다. 여기서 입실론(epsilon)이 의아할텐데, 사실 컴퓨터에서 부동소수점 연산은 정확하지 않다. 즉, 방정식에서 정수로 표현되지 않는 유리수 사이에서의 연산 결과가 0이라고 하더라도, 컴퓨터에서는 0이 아닐 수 있다. 입실론은 이 오차 범위를 나타내는데, 이 입실론 값은 인 경우 만족할만한 정확도를 보인다고 알려져 있다.