Wpis z mikrobloga

dużo to jest kilka?


@SuppressWarnings: co? ( ͡° ͜ʖ ͡°)
Dostaję od kilku do kilkunastu takich okręgów ponad 30 razy na sekundę. Typowe obliczanie odległości zawierające potęgi może trochę spowolnić działanie.

współrzędne biegunowe


@adgebworthy: coś więcej na ten temat?
@Gumaa:
No ze wzoru Pitagorasa liczysz sobie odległość między środkami:

d = sqrt((x0-x1)^2 + (y0-y1)^2)
I potem sprawdzasz czy ta odległość, jest w przedziale:

|p1-p2| <= d <= p1+p2
Jak chcesz zrobić to wydajniej, to podnosisz obie strony do kwadratu dzięki czemu unikniesz kosztowanego obliczeniowo pierwiastkowania:

(p1-p2)^2 <= (x0-x1)^2 + (y0-y1)^2 <= (p0+p1)^2
Potęgę ^2 możesz zastąpić przesunięciem bitowym o jeden to będzie jeszcze szybciej:

((p1-p2) << 1) <= ((x0-x1) <<
@Gumaa: serio? xd
no to liczmy 20 okręgów 50 razy na sekundę:
każdy z każdym to 9500 obliczeń na sekundę, czyli wychodzi trochę ponad 10 milisekund na jedno
a w rzeczywistości to się liczy około 0,0001 ms
@Gumaa: js jest dosyć szybkie wbrew pozora, zla opinie dostal bo się używało go z DOM

A jak masz dużo okręgów to możesz poszukać jak z tym sobie gamedev radzi ;-) trochę rozwiązań będzie
każdy z każdym to 9500 obliczeń na sekundę, czyli wychodzi trochę ponad 10 milisekund na jedno


@SuppressWarnings: Trochę ponad 0,1 ms na jedno. Ale i tak nie powinno to sprawiać problemów, 0,1 ms to kupa czasu dla procesora.