Sprawdź, czy punkt znajduje się w stożku w przestrzeni 3D

Rozważać:

X(x1,y1,z1) punkt, który muszę sprawdzić, czy jest w stożku.M(x2,y2,z2) wierzchołek stożka. (górny punkt stożka)N(x3,y3,z3) punkt pośrodku podstawy stożka.

Dowiedziałem się, że jeśli punkt X znajduje się na stożku, musi zweryfikować to równanie:

cos(alfa) * ||X-M|| * ||N|| = dot(X-M,N)

Gdzie kropka jest iloczynem skalarnym 2 wektorów, a alfa jest kątem między tymi dwoma wektorami.

Na podstawie wzoru obliczyłem, że:

X-M = (x1-x2,y1-y2,z1-z2)

Więc,

cos(alfa)
  * Math.sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2)
  * Math.sqrt(x3^2 + y3^2+z3^2)
= x3(x1-x2) + y3(y1-y2) + z3(z1-z2)

Niestety powyższe obliczenia wydają mi się błędne. Co ja robię źle?

Podejrzewam też, że sprawdzę, czyX jest w stożku, muszę to ułożyć<= zamiast= w formule. Czy to jest poprawne?

Wykorzystanie tego jest następujące: opracowuję grę, w której karabin maszynowy musi zacząć strzelać, gdy przedmiot znajduje się w „widoku”. Ten widok będzie stożkiem. Wierzchołek stożka znajdowałby się w karabinie maszynowym, podstawa stożka znajdowała się w pewnej znanej odległości przed sobą. Każdy obiekt wchodzący w ten stożek, karabin maszynowy go zastrzeli.

questionAnswers(2)

yourAnswerToTheQuestion