-
1. Data: 2013-04-22 09:13:28
Temat: arytmetyka na katach
Od: firr kenobi <p...@g...com>
co jakis czas pojawia sie u mnie potrzeba
zrobienia pewnej arytmetyki na kątach (0..360)
glownie chodzi o odejmowanie i dodawanie,
problem w tym ze te katy potrafia sie
'denormalizowac' (nie tylko zreszta chyba z
tym problem, czasem po prostu pojawiaja sie
w zwiazku ze specyfika katow pewne bledy w kodzie,
ktorych jeszcze nawet nie ogarnalem bo od niedawna
grzebie sie w tych katach )
, z dodawaniem chyba nie
ma problemu bo zawsze jest ok najewyzej mozna
przyciac wynik do 0..360 ale odejmowanie
potrafi sie jakos chrzanic, (teraz np
mysle ze moze lepiej by bylo kat trzymac w
postaci -180, do 180 - bo zwykle poszukuje
mniejszego kata miadzy obiektami, przy normalizowaniu
roznicy do 0,360 zwsze znajduje sie kat w prawo
i trzebby dodawac nowa funkcje tlumaczaca)
ktos moze zna jakis przyklad malego api ktore
operacje na katach trzymaloby w porzadku
wystarczy tylko napisac sobie sprytne dwie funkcje
do dodawania i odejmowania katow i da
sie zrobic przy pomocy tego wszystko co trzeba czy
tez takie mini api katowe ma miec jakas inną
postac ?
-
2. Data: 2013-04-22 09:17:23
Temat: Re: arytmetyka na katach
Od: Adam Klobukowski <a...@g...com>
O API nie słyszałem, ale operacje arytmetyczne na kątach prowadzi się w radianach a
nie Celsujaszach ;)
MSPANC ;)
AdamK
-
3. Data: 2013-04-22 09:24:46
Temat: Re: arytmetyka na katach
Od: firr kenobi <p...@g...com>
W dniu poniedziałek, 22 kwietnia 2013 09:17:23 UTC+2 użytkownik Adam Klobukowski
napisał:
> O API nie słyszałem, ale operacje arytmetyczne na kątach prowadzi się w radianach a
nie Celsujaszach ;)
>
dla mnie wygodniej jest przechowywac jest w
stopniach, wygodniej sie pozniej porównuje
z konkretnymi wartosciami if(alfa<15) alfa+=1;
itd
-
4. Data: 2013-04-22 09:45:12
Temat: Re: arytmetyka na katach
Od: firr kenobi <p...@g...com>
problem wlasnie z tym ze jak sie pisze algorytmy
na takich katach bezrefleksyjnie tak jak na intach
to mozna sie czasem przejechac, z kolei zastanwaianie
sie nad kazda linijką albo wciskanie normalizacji
przy kazdym najmniejszym dodawaniu (c i tak nie
jestem pewien czy pozwala uniknac zupelnie wszystkich
bledów zwiazanych z ta naturą katów) tez nie są
optymalne - wczoraj caly wieczór obserwowalem bugi
gzie male statki kosmiczny ktory powinn y
elegancko losowac sobie obroty i skrecac wpadaly albo
w szalone obroty w prawo albo w oscylacje +180 -180
+1800 -180 :/
-
5. Data: 2013-04-22 10:07:18
Temat: Re: arytmetyka na katach
Od: Adam Klobukowski <a...@g...com>
On Monday, 22 April 2013 09:24:46 UTC+2, firr kenobi wrote:
> W dniu poniedziałek, 22 kwietnia 2013 09:17:23 UTC+2 użytkownik Adam Klobukowski
napisał:
>
> > O API nie słyszałem, ale operacje arytmetyczne na kątach prowadzi się w radianach
a nie Celsujaszach ;)
> >
>
> dla mnie wygodniej jest przechowywac jest w
> stopniach, wygodniej sie pozniej porównuje
> z konkretnymi wartosciami if(alfa<15) alfa+=1;
>
> itd
Przeliczanie na radiany jest banalne. Wszystkie funkcje biblioteczne operują na
radianach. Operowanie na stopniach to proszenie się o kłopoty.
AdamK
-
6. Data: 2013-04-22 10:30:29
Temat: Re: arytmetyka na katach
Od: firr kenobi <p...@g...com>
W dniu poniedziałek, 22 kwietnia 2013 10:07:18 UTC+2 użytkownik Adam Klobukowski
napisał:
> On Monday, 22 April 2013 09:24:46 UTC+2, firr kenobi wrote:
>
> > W dniu poniedziałek, 22 kwietnia 2013 09:17:23 UTC+2 użytkownik Adam Klobukowski
napisał:
>
> >
>
> > > O API nie słyszałem, ale operacje arytmetyczne na kątach prowadzi się w
radianach a nie Celsujaszach ;)
>
> > >
>
> >
>
> > dla mnie wygodniej jest przechowywac jest w
>
> > stopniach, wygodniej sie pozniej porównuje
>
> > z konkretnymi wartosciami if(alfa<15) alfa+=1;
>
> >
>
> > itd
>
>
>
> Przeliczanie na radiany jest banalne. Wszystkie funkcje biblioteczne operują na
radianach. Operowanie na stopniach to proszenie się o kłopoty.
>
niby czemu ?
-
7. Data: 2013-04-22 12:47:05
Temat: Re: arytmetyka na katach
Od: bartekltg <b...@g...com>
W dniu 2013-04-22 10:30, firr kenobi pisze:
> W dniu poniedziałek, 22 kwietnia 2013 10:07:18 UTC+2 użytkownik Adam Klobukowski
napisał:
>> Przeliczanie na radiany jest banalne. Wszystkie funkcje biblioteczne operują na
radianach. Operowanie na stopniach to proszenie się o kłopoty.
>>
>
> niby czemu ?
Bo:
">> Wszystkie funkcje biblioteczne operują na radianach. "
Hasełkiem, którego szukasz jest słowo modulo.
Dla liczb zmiennoprzecinkowych fmod(.,.)
Uważaj na znak.
A może kąt trzymać jako liczbę zespoloną? Obracanie to mnożenie,
nigdy nie liczymy wprost sin i cos, bo już je mamy.
pzdr
bartekltg
-
8. Data: 2013-04-22 13:15:24
Temat: Re: arytmetyka na katach
Od: firr kenobi <p...@g...com>
W dniu poniedziałek, 22 kwietnia 2013 12:47:05 UTC+2 użytkownik bartekltg napisał:
> W dniu 2013-04-22 10:30, firr kenobi pisze:
>
> > W dniu poniedziałek, 22 kwietnia 2013 10:07:18 UTC+2 użytkownik Adam Klobukowski
napisał:
>
>
>
> >> Przeliczanie na radiany jest banalne. Wszystkie funkcje biblioteczne operują na
radianach. Operowanie na stopniach to proszenie się o kłopoty.
>
> >>
>
> >
>
> > niby czemu ?
>
>
>
> Bo:
>
> ">> Wszystkie funkcje biblioteczne operują na radianach. "
>
>
>
> Hasełkiem, którego szukasz jest słowo modulo.
>
>
>
> Dla liczb zmiennoprzecinkowych fmod(.,.)
>
> Uważaj na znak.
>
>
>
>
>
> A może kąt trzymać jako liczbę zespoloną? Obracanie to mnożenie,
>
> nigdy nie liczymy wprost sin i cos, bo już je mamy.
>
>
ciekawy pomysl, sam w sobie bo akurat bez zwiazku
z moimi bugami
zasadnicza sprawa to to ze w swoim kodzie
potrzebuje funkcji na odejmowanie katów (zwrotów)
która zawsze zwracalaby mniejszy kąt miedzy katami
potrzebne jest to do obrazania statku (ktory ma
azymut np 15 stopni) w dowolnym kierunku np -10,
-170, albo 170 stopni
-10-15 = -25 ok
-170-15 = -185 = +175 ok
170-15 = 155 ok
troche sie w tym pogubilem, chodzi mi o wymyslenie
malego api albo jakiejs metodologii ktore byloby
odporne na bledy przy dodawaniu i odejmowaniu
tych katow
moze nie jest zresztatak zle tylko moje wczesniejsze bledy wynikaly ze zlej
normalizacji
(bo chyba ona jest kluczem -180 do 180 i moze bedzie ok)
-
9. Data: 2013-04-22 13:27:41
Temat: Re: arytmetyka na katach
Od: firr kenobi <p...@g...com>
W dniu poniedziałek, 22 kwietnia 2013 12:47:05 UTC+2 użytkownik bartekltg napisał:
> W dniu 2013-04-22 10:30, firr kenobi pisze:
>
> > W dniu poniedziałek, 22 kwietnia 2013 10:07:18 UTC+2 użytkownik Adam Klobukowski
napisał:
>
>
>
> >> Przeliczanie na radiany jest banalne. Wszystkie funkcje biblioteczne operują na
radianach. Operowanie na stopniach to proszenie się o kłopoty.
>
> >>
>
> >
>
> > niby czemu ?
>
>
>
> Bo:
>
> ">> Wszystkie funkcje biblioteczne operują na radianach. "
>
>
>
> Hasełkiem, którego szukasz jest słowo modulo.
>
>
>
> Dla liczb zmiennoprzecinkowych fmod(.,.)
>
> Uważaj na znak.
>
>
a co z tym znakiem fmod(a, 2*pi) dziala lepiej
niz fmod(a, 360) ? chyba obie są do niczego.
wydajniej pewnie pisac kod przy zalozeniu
ze wejscie jest znormalizowane i korekt dokonywac
na bierząco przez ify. Mozliwe zreszta ze prawie
wszystko by działało nawet na tych
nieznormalizowanych katach - a normalizacji potrzebuje tylko w konkretnych sytuacjach
gdy
mam okreslic czy skret w lewo czy w prawo
(zebyz awsze robic to po mniejszym kacie)
a nie siedemnasie obrotów w prawo zeby skrecic
o stopien w lewo ;/
Modulo jest za darmo na intach i mozna by zrobic
lut z sinus cosinus, ale na razie tutaj nie
zajmuje sie wydajnoscia tylko usówaniem bugów :c
bo niby w takich drobiazgach a mam zle dzialajace
kody i musze uwaznie sledzic co sie dzieje
-
10. Data: 2013-04-22 13:51:14
Temat: Re: arytmetyka na katach
Od: bartekltg <b...@g...com>
W dniu 2013-04-22 13:15, firr kenobi pisze:
> W dniu poniedziałek, 22 kwietnia 2013 12:47:05 UTC+2 użytkownik bartekltg napisał:
>> W dniu 2013-04-22 10:30, firr kenobi pisze:
>>
>>> W dniu poniedziałek, 22 kwietnia 2013 10:07:18 UTC+2 użytkownik Adam Klobukowski
napisał:
>>
>>
>>
>>>> Przeliczanie na radiany jest banalne. Wszystkie funkcje biblioteczne operują na
radianach. Operowanie na stopniach to proszenie się o kłopoty.
>>
>>>>
>>
>>>
>>
>>> niby czemu ?
>>
>>
>>
>> Bo:
>>
>> ">> Wszystkie funkcje biblioteczne operują na radianach."
>>
>>
>>
>> Hasełkiem, którego szukasz jest słowo modulo.
>>
>>
>>
>> Dla liczb zmiennoprzecinkowych fmod(.,.)
>>
>> Uważaj na znak.
>>
>>
>>
>>
>>
>> A może kąt trzymać jako liczbę zespoloną? Obracanie to mnożenie,
>>
>> nigdy nie liczymy wprost sin i cos, bo już je mamy.
>>
>>
> ciekawy pomysl, sam w sobie bo akurat bez zwiazku
> z moimi bugami
>
> zasadnicza sprawa to to ze w swoim kodzie
> potrzebuje funkcji na odejmowanie katów (zwrotów)
> która zawsze zwracalaby mniejszy kąt miedzy katami
A umiesz czytać?
Modulo!
pzdr
bartekltg