Izin vermek A
ve B
siyah çizgi üzerinde iki nokta olmak. Let C
ve D
mavi segmenti olmak. z
Çapraz ürün koordinatının işareti AB^AC
size C
siyah çizginin "sol" mu yoksa "sağ" mı olduğunu belirtir. Benzer şekilde, çapraz ürün AB^CD
olmadığını söyler CD
ibne "sol" ya da siyah çizginin "doğru".
Sol ya da sağ olup olmadığını gerçekten bilmek istemiyoruz; tek istediğimiz onların aynı yönde ya da ters yönde olduğundan emin olmaktır, bu yüzden iki değeri çarpıyoruz.
Bu nedenle aşağıdaki sözde kod çalışmalıdır:
z1 = (xB-xA)*(yC-yA) - (yB-yA)*(xC-xA);
z2 = (xB-xA)*(yD-yC) - (yB-yA)*(xD-xC);
z3 = z1 * z2;
if (z3 < 0)
; /* Pointing towards (BUT maybe even crossing) */
else if (z3 > 0 || z2 != 0)
; /* Pointing away */
else
; /* Parallel */
Korkarım Bezier eğrisi için uygun bir çözüm yazmak için biraz zamana ihtiyacım var. Aşağıdaki durum doğru mu yoksa uzak mı?