emu-russia / psxrev

Sony PlayStation PCB/chips reverse engineering.
Creative Commons Zero v1.0 Universal
144 stars 19 forks source link

Collinear solver #41

Closed ogamespec closed 5 years ago

ogamespec commented 5 years ago

Имеется проблема: после нахождения признаков провода - они представляют собой набор "почти" коллинеарных точек.

image

Необходимо соединить первую точку с последней, чтобы получился провод.

ogamespec commented 5 years ago

Алгоритм решения: image

  1. Берем точку (первая точка)
  2. Ищем ближайшую другую точку, вычисляем наклон и запоминаем расстояние (вторая точка) 2.2 Если второй точки не нашлось - игнорируем первую точку и останавливаем алгоритм
  3. Ищем следующую другую точку, расстояние которой не менее +- дельта расстояние между первыми двумя и наклон +- дельта наклона между первыми двумя
  4. Если такой точки не нашлось - то последняя найденная является концом отрезка
ogamespec commented 5 years ago

http://www.cs.princeton.edu/courses/archive/spring03/cs226/assignments/lines.html