Алгоритм шнуровки (площадь Гаусса)

Алгоритм позволяет найти площадь со знаком (знак определяет направление обхода по часовой или против) любого многоугольника.

Более подробно смотри в википедии

Не самый оптимальный, но рабочий вариант алгоритма:

static double signedArea(Vector2d[] polygon)
{
    double area = 0.0;

    int j = 1;
    for (int i = 0; i < polygon.Length; i++, j++)
    {
        j = j % polygon.Length;
        area += (polygon[j].X - polygon[i].X) * (polygon[j].Y + polygon[i].Y);
    }

    return area / 2.0;
}

Задание:

1. Переделайте алгоритм таким образом, чтобы убрать из него операцию остаток от деления.