LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

Получается два радиус-вектора, которые коллинеарны ( по косвенному условию), но их координаты рассчитываются независимо. И при проверке их коллинеарности (проверка на равенство частных от деления составляющих координат векторов друг на друга (x1/x2==y1/y2 ?)) получается, что у этих частных различаются 10 знаки после запятой и соответственно они получаются не коллинеарными (сравнивается модуль разницы чисел с epsilion). И тут я вижу два пути: любо делать функцию сравнения менее точной, т.е. сравнивать не с epsilion, а скажем с 0.000001 (этой точности достаточно) или (что мне больше нравится) использовать библиотеку, которая позволяет использовать типы с фиксированной точностью.

Исходная версия rumgot, :

Получается два радиус-вектора, которые коллинеарны ( по косвенному условию), но их координаты рассчитываются независимо. И при проверке их коллинеарности (проверка на равенство частных от деления составляющих координат векторов друг на друга (x1/x2==y1/y2 ?)) получается, что у этих частных различаются 10 знаки после запятой и соответственно они получаются не коллиарными (сравнивается модуль разницы чисел с epsilion). И тут я вижу два пути: любо делать функцию сравнения менее точной, т.е. сравнивать не с epsilion, а скажем с 0.000001 (этой точности достаточно) или (что мне больше нравится) использовать библиотеку, которая позволяет использовать типы с фиксированной точностью.