Przynależność do krzywej Béziera
Przynależność do krzywej Béziera
Witam. Mam wielomianową krzywą Béziera stopnia trzeciego (którą wyznaczają znane mi punkty A, B, C i D) i chciałbym sprawdzić czy punkt P należy do tej krzywej. Jak to zrobić?
- kuch2r
- Użytkownik
- Posty: 2302
- Rejestracja: 18 paź 2004, o 18:27
- Płeć: Mężczyzna
- Lokalizacja: Wrocław/Ruda Śląska
- Podziękował: 9 razy
- Pomógł: 408 razy
Przynależność do krzywej Béziera
Podam metodę, która rozwiązuje twój problem w bardzo siłowy sposób.
Może się znajdzie Osoba, która będzie znała bardziej efektywne rozwiązanie.
Nie mniej jednak przechodząc do sedna sprawy.
Wywołaną już wcześniej krzywą Beziera możemy zapisać w postaci
\(\displaystyle{ \begin{cases}P_x(t) = A_x (1-t)^3 + 3 B_x t(1-t)^2 + 3 C_x t^2 (1-t) + D_x t^3\\
P_y(t) = A_y (1-t)^3 + 3 B_y t(1-t)^2 + 3 C_y t^2 (1-t) + D_y t^3\end{cases}}\), gdzie \(\displaystyle{ A,B,C,D}\) są dane oraz \(\displaystyle{ t\in[0,1]}\)
Niech punkt \(\displaystyle{ P(x_p,y_p)}\) będzie naszym punktem, dla którego pytamy się czy należy od do krzywej.
Wówczas, jeżeli gdy punkt \(\displaystyle{ P}\) należy do krzywej to istnieje \(\displaystyle{ t \in [0,1]}\), będące rozwiązaniem następującego układu równań:
\(\displaystyle{ \begin{cases}x_p = A_x (1-t)^3 + 3 B_x t(1-t)^2 + 3 C_x t^2 (1-t) + D_x t^3\\
y_p = A_y (1-t)^3 + 3 B_y t(1-t)^2 + 3 C_y t^2 (1-t) + D_y t^3\end{cases}}\)
Może się znajdzie Osoba, która będzie znała bardziej efektywne rozwiązanie.
Nie mniej jednak przechodząc do sedna sprawy.
Wywołaną już wcześniej krzywą Beziera możemy zapisać w postaci
\(\displaystyle{ \begin{cases}P_x(t) = A_x (1-t)^3 + 3 B_x t(1-t)^2 + 3 C_x t^2 (1-t) + D_x t^3\\
P_y(t) = A_y (1-t)^3 + 3 B_y t(1-t)^2 + 3 C_y t^2 (1-t) + D_y t^3\end{cases}}\), gdzie \(\displaystyle{ A,B,C,D}\) są dane oraz \(\displaystyle{ t\in[0,1]}\)
Niech punkt \(\displaystyle{ P(x_p,y_p)}\) będzie naszym punktem, dla którego pytamy się czy należy od do krzywej.
Wówczas, jeżeli gdy punkt \(\displaystyle{ P}\) należy do krzywej to istnieje \(\displaystyle{ t \in [0,1]}\), będące rozwiązaniem następującego układu równań:
\(\displaystyle{ \begin{cases}x_p = A_x (1-t)^3 + 3 B_x t(1-t)^2 + 3 C_x t^2 (1-t) + D_x t^3\\
y_p = A_y (1-t)^3 + 3 B_y t(1-t)^2 + 3 C_y t^2 (1-t) + D_y t^3\end{cases}}\)