Wyznaczenie kierunku obrotu odcinka.

Wielokąty (n>3). Okręgi. Inne figury płaskie. Zadania i twierdzenia z nimi związane. Geometria rzutowa na płaszczyżnie.
Magnetofon
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 10 gru 2008, o 12:46
Płeć: Mężczyzna
Lokalizacja: Warszawa

Wyznaczenie kierunku obrotu odcinka.

Post autor: Magnetofon »

Piszę krótki program (niekomercyjny) który wspomaga rzutowanie powierzchni brył z przestrzeni trójwymiarowej do dwuwymiarowej. Program jest częścią większego pakietu to tworzenia grafiki. Natknąłem się na pewien problem, przy którym zacząłem kręcić się w kółko i potrzebuje pomocy. Z góry przepraszam, za ew. nieścisłość w nazewnictwie matematycznym ale od czasów szkolnych mam z matematyką bardzo mało wspólnego a nazewnictwo używane przez programistów i matematyków nie koniecznie musi być takie samo.

Mam następującą sytuację.

- 2 wymiarowy układ współrzędnych X,Y. Współrzędne 0,0 leżą w dolnym lewym rogu a 1,1 w górnym prawym.
- dwa odcinki: S i D
-- odcinki mają jeden punkt wspólny, początek lub koniec ( nie przecinają się ).
-- są nachylone do siebie pod kontem od 0 (wykluczając 0) do 90 stopni
-- znane są współrzędne wszystkich punków tych odcinków jak i kąt pomiędzy nimi - kąt wyznaczam z 'wektorów tych odcinków'.
-- odcinki mają różną długość.

Innymi słowy: dane są dwa odcinki których graficzna reprezentacja ma wygląd litery 'V' a w skrajnym przypadku 'L' w różnym położeniu.

Moim celem jest, obrócenie odcinka D (konkretnego odcinka), wokół punktu wspólnego dla dwóch odcinków, tak żeby po obrocie przylegał do odcinka S. Czyli o obróceniu go o kąt który jest pomiędzy odcinkami wokół punku wspólnego.

Problem który mam to w jaki sposób - matematycznie tj. na podstawie ww. danych - określić w którym kierunki tj. czy zgodnie do ruchu wskazówek zegara czy w przeciwną stronę, należy obrócić odcinek tak żeby przylegał do drugiego. Oprogramowanie bazowe dokonuje obrotu jednak wymaga argumentu który poprzez znak określi kierunek tego obrotu.

Czy mógłby mi pomów, mówiąc chociażby w gdzie szukać rozwiązania?
Kartezjusz
Użytkownik
Użytkownik
Posty: 7330
Rejestracja: 14 lut 2008, o 08:31
Płeć: Mężczyzna
Lokalizacja: Z Bielskia-Białej
Podziękował: 6 razy
Pomógł: 961 razy

Wyznaczenie kierunku obrotu odcinka.

Post autor: Kartezjusz »

Według umowy obracamy przeciwnie do ruchu wzkazówek zegara
Magnetofon
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 10 gru 2008, o 12:46
Płeć: Mężczyzna
Lokalizacja: Warszawa

Wyznaczenie kierunku obrotu odcinka.

Post autor: Magnetofon »

W jaki sposób wyznaczyć kąt takiego obrotu?

BTW: Dla uproszczenia, być może niepotrzebnie, nie wspomniałem że odcinki są częścią wieloboków - jednak z tego co widzę przy obrocie w tą czy inną stronę nie powinno mieć to znaczenia.
Kartezjusz
Użytkownik
Użytkownik
Posty: 7330
Rejestracja: 14 lut 2008, o 08:31
Płeć: Mężczyzna
Lokalizacja: Z Bielskia-Białej
Podziękował: 6 razy
Pomógł: 961 razy

Wyznaczenie kierunku obrotu odcinka.

Post autor: Kartezjusz »

Pamiętaj,że odcinki obracamy w jedną i tę samą stronę.
Magnetofon
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 10 gru 2008, o 12:46
Płeć: Mężczyzna
Lokalizacja: Warszawa

Wyznaczenie kierunku obrotu odcinka.

Post autor: Magnetofon »

Rozumiem, tylko że mi chodzi o obrót konkretnego odcikA tak żeby przylegał do drugiego a nie o obrót odcinkÓW. Celem nie jest obrócenie jednego albo drugiego odcinka tak żeby w końcu oba przylegały do siebie.

W przypadku obrotu w dwie strony - niezgodnie jak mówisz w umową: konkretny odcinek musi być obrócony o kont A albo -A. Pytanie o który?

W przypadku obrotu w jedną stronę - zgodnie z umową - konkretny odcinek musi być obrócony o kont A albo o kont 360-A. Pytanie o który?

Niezależnie od podejścia, problem pozostaje ten sam. W jaki sposób wyliczyć wskaźnik który będzie decydował jaki jest kąt obrotu. Chodzi i o ustalenie drogi w jaki sposób ten 'wskaźnik' wyliczyć a nie pokazać go na rysunku. Nie jestem pewien czy post jest w odpowiedniej sekcji na forum.

Problem rozwiązałem sobie w ten sposób, że obracam odcinek o 360-A stopi i sprawdzam czy wektory obu odcinków po obrocie są równoległe. Jeżeli nie są to obracam odcinek o kat między odcinkami po obrocie. Rozwiązanie akceptowalne bo działa ale na pewno nie jest idealne. Gdyby odcinki miały tą samą długość można by obrócić jeden punk, który nie jest punktem wspólnym i sprawdzić czy jego współrzędne są równe punkowi na drugim odcinku ale po pierwsze odcinki nie są równe a po drugie może to powodować dodatkowe problemy - np. błędy zaokrągleń.
Kartezjusz
Użytkownik
Użytkownik
Posty: 7330
Rejestracja: 14 lut 2008, o 08:31
Płeć: Mężczyzna
Lokalizacja: Z Bielskia-Białej
Podziękował: 6 razy
Pomógł: 961 razy

Wyznaczenie kierunku obrotu odcinka.

Post autor: Kartezjusz »

Mam ten znak obliczyć ?
Magnetofon
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 10 gru 2008, o 12:46
Płeć: Mężczyzna
Lokalizacja: Warszawa

Wyznaczenie kierunku obrotu odcinka.

Post autor: Magnetofon »

Dokładnie, tak ale oczywiście chodzi mi o wzór w jaki sposób go obliczyć albo chociażby wskazanie metody.
Awatar użytkownika
artbyte
Użytkownik
Użytkownik
Posty: 126
Rejestracja: 12 gru 2008, o 11:23
Płeć: Mężczyzna
Lokalizacja: Kraków

Wyznaczenie kierunku obrotu odcinka.

Post autor: artbyte »

Magnetofon pisze:Dokładnie, tak ale oczywiście chodzi mi o wzór w jaki sposób go obliczyć albo chociażby wskazanie metody.
zadanie rozwiążesz jeśli za odcinek wektor weźmiesz
przesuniesz (translacja) o wektor który wyznaczysz
biorąc różnicę wektorów, którymi teraz są te odcinki.

itd itd tak jak to robisz skończone
ODPOWIEDZ