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...
Wspołrzędne punktu
-
- 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
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)}\).
\(\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)}\).
-
- 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
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.
A np. 90 stopni to do góry?
Teraz błędy się znaczenie zmiejszyły.
-
- 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
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 ??
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 ??