Добавлено через 11 часов 15 минут
Проверил метод. Существенных отличий от алгоритма второй части нет. Опять-таки во всём виноваты машинные погрешности.
Единственное отличие методов в двойке и тройке заключается в способе построения "дискретной" линии атаки. В двойке линия строится с шагом 1/10 по большему измерению, а в тройке - 1/17! Число 1/10 = 0,1 спокойно чувствует себя в четырёх байтах, т.е. реальная дробь 0,1 равна машинной, а вот 1/17, как ни крути, не помещается и округляется, т.е. реальная дробь 1/17 НЕ равна машинной! Т.о. накопление погрешности в тройке идёт как по Х, так и по Y (в отличие от двойки, где оно идёт только по Y), что проявляет себя, когда линия атаки проходит через одну из вершин окрестности секции.
Поэтому, в случае если линия атаки проходит через одну из вершин окрестности секции, в отсутствии или наличии штрафа можно убедиться только практически.
Теоретически, конечно, тоже можно, но нужно учитывать особенности арифметических операций с четырёхбайтовыми дробями.
Во всех остальных случаях погрешности роли не играют.