Прежде, чем приступать к экспериментам с альтернативными алгоритмами рисования линий я решил написать программы для простейшей графики. Написал процедуры из главы 2 книги “Графика для ZX Spectrm”. Они позволяют перейти от абсолютных экранных координат к относительной системе координат. Плюс - масштабируют систему координат. Сами по себе процедуры крайне простые. Но их пришлось переделать, чтобы все координаты оставались только челочисленными. Так как моя конечная цель - привязать их к Форту. А в Форт числа с плавающей точкой есть, но они нежелательны. Фактически, я спрятал в коде на Си все операции, которые вовлекают числа с плавающей точкой.
Два простейших примера заработали. Алгоритм Брезенхэма оказался куда лучше, чем я ожидал. Он прочерчивает линии почти целиком и даёт сбой в очень ограниченных случаях. Думаю, я займусь альтернативными алгоритмами чуть позже. Если займусь когда - нибудь.
У связного многоугольника появляется смещение относительно начала координат.
У фигуры, которую в книгах по компьютерной графике называют Godseye с этим всё в порядке.
Дальше в книге ещё один пример интересной фигуры, а потом постепенный переход к алгоритмам удаления скрытых поверхностей и преобразования в пространстве. Где-то на этом месте мне придётся решить, какой объём кода оставить в Си, а какой реализовать уже на Форт. Скорее всего, в Си я оставлю все преобразования относительных координат в экранные и рисование графических примитивов. А в Форт попытаюсь реализовать всё остальное.