вообще это как бэ ты угол считаешь, а рассояние считается по формуле длинны вектора
а отрицательные значания получаются, это правильно так и должно быть
хочу добавить что направление вектора здесь не имеет значения, х1, у1 - может быть как координатами начала так и конца. ну а х,у соответственно