Współrzędne punktu względem odcinka

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Współrzędne punktu względem odcinka

Post autor: AS3000 »

Witam, pisze program, dokładniej grę.
Znalazłem się w sytuacji w której muszę policzyć współrzędne punktu który tworzy z odcinkiem AB kąt \(\displaystyle{ \alpha}\). Niestety sam nie mogę się doliczyć więc proszę o pomoc, szukałem w google, były podobne zagadnienia, ale niestety nie umiem ich przekształcić ;(

Dokładniej mówiąc - mamy punkt A o współrzędnych x1, y1 i punkt B o współrzędnych x2, y2, długość d oraz kąt \(\displaystyle{ \alpha}\) o znanej nam miarze. Mamy za zadanie policzyć wspólrzędne punktu C. Kąt między odcinkami AB i AC to właśnie \(\displaystyle{ \alpha}\), a ich długości są równe d.

No i jeszcze trzeba zwrócić uwagę na to że wszystko dzieję się na monitorze - lewy górny róg współrzędne (0,0), w dół rośnie y, w prawo x. W tym przypadku nie powinno być wartości ujemnych, zdaję sobie sprawę, że przy źle dobranym odcinku AB to jest konieczne, ale to już moja sprawa żeby był w odpowiednim miejscu.

Z góry Dziekuje za pomoc, Pozdrawiam.
anna_
Użytkownik
Użytkownik
Posty: 16328
Rejestracja: 26 lis 2008, o 20:14
Płeć: Kobieta
Podziękował: 35 razy
Pomógł: 3248 razy

Współrzędne punktu względem odcinka

Post autor: anna_ »

ABC to trójkąt równoramienny o danych dwóch bokach.
Z twierdzenia cosinusów liczysz bok \(\displaystyle{ BC=a}\)
potem rozwiązujesz układ równań
\(\displaystyle{ \begin{cases} \sqrt{(x_3-x_1)^2+(y_3-y_1)^2}=d \\ \sqrt{(x_3-x_2)^2+(y_3-y_2)^2}=a\end{cases}}\)
Awatar użytkownika
akw
Użytkownik
Użytkownik
Posty: 479
Rejestracja: 24 lis 2010, o 20:15
Płeć: Mężczyzna
Lokalizacja: W.
Podziękował: 11 razy
Pomógł: 57 razy

Współrzędne punktu względem odcinka

Post autor: akw »

Nie znam się na programowaniu ale mój brat miał ostatnio problem z napisaniem wykresu sinusoidy w php. Zobaczymy może coś Ci się przyda.

Zakładam że jeżeli jesteś wstanie policzyć \(\displaystyle{ \sphericalangle BAC}\) to jesteś też wstanie policzyć kąt \(\displaystyle{ \sphericalangle ABC}\) Jeżeli tak to możesz skorzystać z twierdzenia sinusów i uzależnić kąty od odcinków.
\(\displaystyle{ \frac{|BC|}{sin \alpha }= \frac{|AC|}{sin \sphericalangle ABC}}\)
Teraz z tego możemy obliczyć długość odcinka \(\displaystyle{ |BC|}\)
A mając trzy boki i współrzędne dwóch wierzchołków to możemy policzyć współrzędne trzeciego wierzchołka.
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Współrzędne punktu względem odcinka

Post autor: AS3000 »

Sorry, ale nie umiem rozwiązać tego uładu równań... ;( Moglibyście powiedzieć ile się równa x3 i y3 ?? Byłbym wdzięczny.
Awatar użytkownika
akw
Użytkownik
Użytkownik
Posty: 479
Rejestracja: 24 lis 2010, o 20:15
Płeć: Mężczyzna
Lokalizacja: W.
Podziękował: 11 razy
Pomógł: 57 razy

Współrzędne punktu względem odcinka

Post autor: akw »

To są wzory na długość odcinka. Masz trzy długości (jedna wartość wyliczona z tw. cosinusów) i współrzędne dwóch punktów. Podstawiając do powyższego układu będziesz miał dwie niewiadome. \(\displaystyle{ x_{c}, y_{c}}\) A wtedy na liczbach i dwóch niewiadomych już łatwo pójdzie.
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Współrzędne punktu względem odcinka

Post autor: AS3000 »

Niby tak, ale no właśnie zastanawiam się jak to inaczej wyliczyć...
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

Współrzędne punktu względem odcinka

Post autor: Crizz »

Jeśli dobrze rozumiem, to chcesz tak naprawdę obrócić punkt \(\displaystyle{ B(x_b,y_b)}\) o kąt \(\displaystyle{ \alpha}\) wokół punktu \(\displaystyle{ A(x_a,y_a)}\).

Znamy wzory na obrót wokół początku układu współrzędnych. Żeby dostać wzory na obrót wokół dowolnego innego punktu:
przesuwamy wszystkie punkty tak, żeby punkt, wokół którego chcemy obrócić, stał się początkiem układu
obracamy odpowiedni punkt wokół początku układu
"wracamy" z punktami na swoje miejsce:

\(\displaystyle{ \begin{cases} x_b^{\prime}=x_b-x_a \\ y_b^{\prime}=y_b-y_a \end{cases}}\)

\(\displaystyle{ \begin{cases} x_b^{\prime \prime}=(x_b-x_a)cos\alpha-(y_b-y_a)sin\alpha \\ y_b^{\prime \prime}=(x_b-x_a)sin\alpha+(y_b-y_a)cos\alpha \end{cases}}\)

\(\displaystyle{ \begin{cases} x_b^{\prime \prime \prime}=(x_b-x_a)cos\alpha-(y_b-y_a)sin\alpha+x_a \\ y_b^{\prime \prime \prime}=(x_b-x_a)sin\alpha+(y_b-y_a)cos\alpha+y_a \end{cases}}\)

Te ostatnie wzory dają już współrzędne szukanego punktu (nie jestem pewien, ale specyficzny układ osi układu współrzędnych w Twoim problemie będzie chyba wymagał lustrzanego odbicia, więc musisz się zastanowić, jaki kąt podstawić do wzoru zamiast \(\displaystyle{ \alpha}\)).
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Współrzędne punktu względem odcinka

Post autor: AS3000 »

Wielkie dzięki, myślę, że wystarczy \(\displaystyle{ 360^\circ - \alpha}\), ale jeszcze sprawdzę, jeszcze raz dzięki.

-- 28 lis 2010, o 13:23 --

Kurcze, coś jednak nie gra...
Przetestowałem dla czterech kątów (we wszystkich punkt a ma \(\displaystyle{ x = 10}\) i \(\displaystyle{ y = 10}\)):
a) \(\displaystyle{ \alpha = 72^\circ,x_b = 11.2, y_b = 15.1}\)
b) \(\displaystyle{ \alpha = 144^\circ ,x_b = 7.5 y_b = 6.8}\)
c) \(\displaystyle{ \alpha = 216^\circ,x_b = 13.4, y_b = 16.0}\)
d) \(\displaystyle{ \alpha = 288^\circ,x_b = 5.7, y_b = 11.0}\)

Wyszły raczej złe wyniki, gdyby to narysować to sami zobaczcie co by wtedy było. Może wiecie co może być źle ??

Użyłem dokładnie tego trzeciego wzoru:
\(\displaystyle{ x_b = (x_b - x_a) \cdot cos\alpha - (y_b - y_a) \cdot sin\alpha + x_a\\
y_b = (x_b - x_a) \cdot sin\alpha + (y_b - y_a) \cdot cos\alpha + y_a}\)
Ostatnio zmieniony 28 lis 2010, o 22:05 przez Crizz, łącznie zmieniany 1 raz.
Powód: Nieczytelny zapis - brak LaTeX-a. Proszę zapoznać się z instrukcją: http://matematyka.pl/latex.htm .
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

Współrzędne punktu względem odcinka

Post autor: Crizz »

Hmmm... no ja sprawdziłem pierwszy punkt i podstawiłem po prostu kat \(\displaystyle{ 72^\circ}\). Współrzędne punktu \(\displaystyle{ C}\) wyszły \(\displaystyle{ (5,52;12,7)}\) i po narysowaniu wszystkich trzech punktów wygląda sensownie.
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Współrzędne punktu względem odcinka

Post autor: AS3000 »

Jak ci to wychodzi ?? Mnie tak nawet ręcznie nie wychodzi...
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

Współrzędne punktu względem odcinka

Post autor: Crizz »

Hmm, no normalnie:
\(\displaystyle{ x_a=10,y_a=10\\
x_b=11.2, y_b=15.1\\
x_b-x_a=1.2,y_b-y_a=5.1}\)


\(\displaystyle{ x_c=1.2 cos 72^\circ-5.1 sin72^\circ+10 \approx 5.52}\)
\(\displaystyle{ y_c=1.2 sin 72^\circ+5.1 cos72^\circ+10 \approx 12.7}\)

Jak zaznaczysz punkty \(\displaystyle{ A,B,C}\) w układzie współrzędnych, to kąt BAC będzie miał \(\displaystyle{ 72^\circ}\).
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Współrzędne punktu względem odcinka

Post autor: AS3000 »

Nie, nie to nie tak xb nie równa się 11.2 a yb nie równa się 5.1 to są moje nieudane wyniki Na początku xb = 10, a yb = 5... Potem wyliczamy nowe wartości tego punktu, lub ewentualnie pkt. c.
ODPOWIEDZ