Na początku miałem wersję z negacją, ale trzeba było odpowiednio reagować na ujemne dxy i zrezygnowałem z tego na rzecz szybszego kodu... :)