turnsLeft векторы на Java

171
26 апреля 2019, 02:10

Код на Java, Q - Stack точек. Непонятно (код не мой, препод дал), что такое turnsLeft. Вроде какой-то поворот одного вектора относительно другого, но непонятно. Что делает этот метод?

    Point p2 = Q.Pop();
    Point p1 = Q.Pop();
    Point p0 = Q.Pop();
    Vector p0p1 = new Vector(p1.X - p0.X, p1.Y - p0.Y);
    Vector p1p2 = new Vector(p2.X - p1.X, p2.Y - p1.Y);
    if (p0p1.turnsLeft(p1p2))
    {
        Q.Push(p0);
        Q.Push(p1);
        Q.Push(p2);
    }

(26.11)Есть ли аналог на C#?

Answer 1

Нарисуйте на бумаге три точки и проведите отрезки от первой ко второй и от второй к третьей. Получилась эдакая дорожка - полилиния.

Функция turnsLeft() проверяет (скорее всего, с использованием знака векторного произведения), в какую сторону поворачивает полилиния в средней точке при движении от первой к последней. Если влево, то две последних точки меняются местами.

READ ALSO
Выборка из PostgreSQL по дате

Выборка из PostgreSQL по дате

Есть таблица зарегистрированных юзеров (id, name, create_date)

198
Не применяется рефлексия в android studio

Не применяется рефлексия в android studio

Всем приветУ меня стоит следующая задача, написание rest клиента для приложения в андроид

173
FileWriter запись/создание файла

FileWriter запись/создание файла

Пишу Класс для создание/чтения файлов propertiesКаждый файл находится в своей папке

182
Как переделать метод на stream api

Как переделать метод на stream api

Как переделать метод на Stream API:

309