April 22nd, 2021

QuatCore

Алг. ближней дистанции, сортировка "слева направо"

В прошлый раз мы отладили нахождение двух самых отдалённых точек, благодаря чему точки в массиве выстроились в следующем порядке:



то есть, два самых крупных индекса, 6 и 7, стали принадлежать "крайним" точкам. Теперь всех оставшихся надо отсортировать вдоль отрезка, соединяющего точки 6 и 7. Попробуем написать процедуру на ассемблере, делающую именно это.

Collapse )

Вся программа "алгоритма захвата ближней дистанции" сейчас занимает 54 слова кода (108 байт), из которых 9 слов будут "общими" с алгоритмом дальней дистанции, 25 слов - "поиск двух наиболее отдалённыхточек" и 19 слов - наша "сегодняшняя" сортировка. Сейчас попробуем всё это запустить...
Sidious

Втулки: дешёвая и ещё дешевле!

Продолжаю кататься на велосипеде на работу и обратно, всё меньше и меньше используя МЦК, благо погода очень недурственная стоит. Но 9 апреля опять лопнула спица на правой стороне заднего колеса. 12-го апреля - ещё одна! Это всё декатлоновское колесо за 2000 р, которое я купил летом 2020 года. И пока что оно "теряло" свои родные спицы, а когда я взамен ставил Pillar 2,0-1,8-2,0 (спицу с "талией", сужающуюся по центру до 1,8 мм), они никогда не лопались. Поэтому я решил: у этого колеса именно спицы были "гнилые", "пластилиновые", уже 10 (!) из 16 спиц на правой стороне я заменил в течении 10 месяцев, ещё чуть-чуть - и будет вполне себе колесо!

Но 20 апреля у меня лопнула спица Pillar, а это уже криминал! Причём я знаю, что натяжение у неё было правильное, я же недавно это колесо подтягивал, и ни в какие зверские колдобины или траншеи я не попадал, с высоких бордюров не прыгал. Что-то здесь не так...

Есть в этом колесе какая-то подлянка, которая заставляет вполне нормальные спицы лопаться. И похоже я понял, в чём здесь дело: фланцы втулки слишком тонкие!

IMG20210420124306.jpg

Collapse )

Буду время от времени докладывать, возымело ли это эффект.
QuatCore

Тест сортировки "слева направо"

Пора нашу программу проверить, хотя бы на симуляции.

Сразу же обнаружил ошибку, при вычислении вектора нужны были индексы 6 и 7, а я перепутал X с Z, и получились 5 и 8, зашибись.


Пока всё хорошо.
Collapse )



Отлично! Если бы мы просто сортировали по компоненте X, то точки 1 и 2 вышли бы в другом порядке. Но если мысленно провести линию между крайними точками и расположить точки вдоль неё, то получим ровно тот результат, что дал алгоритм.

Пока не будем заморачиваться со случаем 7 точек вместо 8 (чуть позже доделаем), а в первую очередь сделаем выделение центральных точек. Поскольку они вынесены вперёд, то при различных ракурсах они могут очень основательно "гулять" относительно остальных!