Wyznaczanie punktu na dwusiecznej kąta

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
CSharpProgramista
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 14 sty 2013, o 23:02
Płeć: Mężczyzna
Lokalizacja: Polska

Wyznaczanie punktu na dwusiecznej kąta

Post autor: CSharpProgramista »

Witam

Zadanie jest następujące:
Dane mam punkty A, B, C, oraz dystans pomiędzy punktami B i D, wyznaczyć punkt D taki aby spełniał warunki:
- leżał na dwusiecznej kąta ABC
- był w znanej odległości od punktu B

Algorytm jaki obrałem do rozwiązania tego zadania to:
1) wyznaczam równania prostych AB i BC
2) wyznaczam równanie prostej dwusiecznej kąta ABC (kąta tworzonego przez proste AB i BC, są dwie dwusieczne ale sprawdzam warunek czy wspolczynnik kierunkowy dwusiecznej jest mniejszy od wsp. prostej AB i czy jest większy od wsp. prostej BC)
3) z układu równań: prostej dwusiecznej oraz okręgu o środku w punkcie B i promieniu długości zadanego dystansu pomiędzy punktami BD wyznaczam wspolrzedne punktu D (tu tez sądwa rozwiązania, jeszcze nie wiem jakimi warunkami szukac tego wlasciwego punktu ale problem mam z czym innym po drodze)

Dlaczego w wizualizacji po mzianie wspolrzednych punktów A, B lub C zmienia mi sie dlugość odcinka BD? Juz dwa razy wyprowadzalem wzory, moze mam blad w rozumowaniu i algorytm jest zly?

Zadanie to wprawka w programowaniu, gdzieś kiedyś przeczytane na którymś forum, żeby było ciekawiej napisałem program w C# do wizualizacji tego zadania, ale mam z nim problem.
Nie moge rozszyfrować dlaczego zmieniając wspolrzędne punktów A, B i C zmienia mi siędystans BD. jeżeli ktoś wie gdzie może być błąd prosiłbym o pomoc.

octahedron
Użytkownik
Użytkownik
Posty: 3568
Rejestracja: 7 mar 2011, o 22:16
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 910 razy

Wyznaczanie punktu na dwusiecznej kąta

Post autor: octahedron »

Algorytm wydaje się dobry. Można też trochę inaczej, wektor kierunkowy dwusiecznej \(\displaystyle{ \angle ABC}\) to \(\displaystyle{ \vec{u}=[u_x,u_y]=\frac{\vec{BA}}{|\vec{BA}|}+\frac{\vec{BC}}{|\vec{BC}|}}\), więc punkty na dwusiecznej mają współrzędne

\(\displaystyle{ \begin{cases}x=x_B+u_xt\\y=y_B+u_yt\end{cases}\, \Rightarrow \begin{cases}x_D=x_B+\frac{u_x}{|\vec{u}|}\cdot d\\y_D=y_B+\frac{u_y}{|\vec{u}|}\cdot d\end{cases}}\)

gdzie \(\displaystyle{ d}\) jest tą daną odległością
CSharpProgramista
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 14 sty 2013, o 23:02
Płeć: Mężczyzna
Lokalizacja: Polska

Wyznaczanie punktu na dwusiecznej kąta

Post autor: CSharpProgramista »

Dzięki, na pierwszy rzut oka wydaje się że nie ma kwadratów w Twoim algorytmie i może być szybszy, muszę tylko przypomnieć sobie wektory

Edit:
Teraz sobie pomyślałem że we wzorze na równanie okręgu powinienem wstawiać współrzędne środka ze zmienionym znakiem a tego nie zrobiłem
ODPOWIEDZ