Wspołrzędne punktu

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

Wspołrzędne punktu

Post autor: AS3000 »

Witam!
Pisze program w C++ i natrafiłem na następujący problem:

Mamy punkt A o współrzędnych x, y. Muszę napisać funkcję która pod danym kątem przesuwa o odległość zawartą w zmiennej distance.

Ogólnie próbowałem tak:
mam punkt A;
robie punkt B o współrzędnej x tej samej jak puktu A a y większe od By o distance;
Następnie obracam o dany kąt punkt B względem punktu A.

Niessstety Ale komputer nie jest do końca precyzyjną maszynę, a do tego dla wymagań bibliotek musze przeliczać stopnie na radiany(do liczenia sinusów i cosinusów) co powiększa niedokładność.
i wychodzi że gdy symuluje ruch pod kątem 90 stopni to porusza się o 45 stopni ;( próbowałem wiele alenic nie pomaga.. Proszę was o inny sposób jakiś obliczenia tego, być może istneje...

Jak już jesteśmy w tym temacie to mam ważnepytanie czy punkt B jestobracany względem pkt. A w lewo czy w prawo

Zgóry DZIĘKUJE ZA POMOC, bardzo m na tym zależy.

Niestety jak sam zobaczyłem, jeśli nie powstanie jakaś nowa biblioteka, która np. nie podstawiała by wartości PI tylko zapamiętywała by np 2PI, to takieprogramy jak mój będą działały niepoprawnie...
xiikzodz
Użytkownik
Użytkownik
Posty: 1874
Rejestracja: 4 paź 2008, o 02:13
Płeć: Kobieta
Lokalizacja: Lost Hope
Podziękował: 28 razy
Pomógł: 502 razy

Wspołrzędne punktu

Post autor: xiikzodz »

Jeśli np. ten kąt \(\displaystyle{ \alpha}\) jest pomiędzy osią X, a kierunkiem przesunięcia, to szukany punkt ma współrzędne:

\(\displaystyle{ (x+d\cdot\cos\alpha\:\:,\:\:y+d\cdot\sin\alpha)}\)

gdzie \(\displaystyle{ d}\) jest odległością (distance), o którą przesuwamy.

Jeśli kąt jest dany w stopniach, to używamy:

\(\displaystyle{ \left(x+d\cdot\cos\frac{\alpha\pi}{180}\:\:,\:\:y+d\cdot\sin\frac{\alpha\pi}{180}\right)}\).
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Wspołrzędne punktu

Post autor: AS3000 »

Wielkie, wielkie dzięki. Bardzo fajnie, tylko mam jedno pytanie, kąt ruchu - 0 stopni to ruch w prawo tak??
A np. 90 stopni to do góry?
Teraz błędy się znaczenie zmiejszyły.
xiikzodz
Użytkownik
Użytkownik
Posty: 1874
Rejestracja: 4 paź 2008, o 02:13
Płeć: Kobieta
Lokalizacja: Lost Hope
Podziękował: 28 razy
Pomógł: 502 razy

Wspołrzędne punktu

Post autor: xiikzodz »

Tak jest, odwrotnie do ruchu wskazówek zegara.
AS3000
Użytkownik
Użytkownik
Posty: 15
Rejestracja: 26 lis 2010, o 16:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz

Wspołrzędne punktu

Post autor: AS3000 »

A mam jeszcze drugą sprawę
Mamy podobną sytuację, chce ruszyć punkt danym kierunku i o daną odległość, jednak w 3 wymiarowym układzie współrzędnych i nie wiem jak się za to zabrać.

Wogóle jak można wyznaczyć ten kiierunek??
Np. dany kąt w płaszczyźnie XY, XZ lub YZ?? Chociaż sam niewiem, a wogóle już nie mam pojęcia jak ten punkt przesunąć.

Jeśłi moglibyście jeszcze w tym przypadku mi pomóc byłbym wdzięczny.-- 7 kwi 2011, o 15:19 --Hej nie wie ktoś może ??
ODPOWIEDZ