Преобразование, чтобы избавиться от коллинеарных точек - PullRequest
2 голосов
/ 30 мая 2010

Я пишу программу для решения геометрической задачи.

Мой алгоритм плохо обрабатывает коллинеарную точку.

Можно ли применить преобразование к точкам, чтобы получитьизбавиться от коллинеарности?

Ответы [ 2 ]

5 голосов
/ 30 мая 2010

Тогда я думаю, что шум действительно может быть решением. Как я уже писал в комментарии выше

Один из способов удаления колинеарности просто добавить шум к каждому точка, то есть (x, y, z) ↦ (x + 0,01 * (random () - 0,5), y + 0,01 * (random () - 0,5), z + 0,01 (random () - 0,5)), если random () возвращает случайное действительное число в [0, 1 [.

0 голосов
/ 01 июня 2010

Если вы работаете с множеством наборов точек, добавление шума к каждому набору может решить проблему в одном наборе, но создать его в другом.

Если это так, перед применением шума вы можете проверить коллинеарность.

Условие коллинеарности:

       x1  y1  1
  det  x2  y2  1  = 0
       x3  y3  1
...