Skip to main content

Блог инженера

Блог о минимализме, инжинерии и программировании.



Черим линию из точек. Часть 2

  | #Форт#программирование#unfinished

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

Два простейших примера заработали. Алгоритм Брезенхэма оказался куда лучше, чем я ожидал. Он прочерчивает линии почти целиком и даёт сбой в очень ограниченных случаях. Думаю, я займусь альтернативными алгоритмами чуть позже. Если займусь когда - нибудь.

N-gon

У связного многоугольника появляется смещение относительно начала координат.

Godseye

У фигуры, которую в книгах по компьютерной графике называют Godseye с этим всё в порядке.

Дальше в книге ещё один пример интересной фигуры, а потом постепенный переход к алгоритмам удаления скрытых поверхностей и преобразования в пространстве. Где-то на этом месте мне придётся решить, какой объём кода оставить в Си, а какой реализовать уже на Форт. Скорее всего, в Си я оставлю все преобразования относительных координат в экранные и рисование графических примитивов. А в Форт попытаюсь реализовать всё остальное.

About Mikhail Kiselev

Photo of Mikhail Kiselev

Приветствую в моём блоге! 😄 Меня зовут Михаил. Я инженер и программист. Живу в Сибири, работаю на Сахалине, путешествую где придётся. Я предпочитаю пост в блог посту в твиттер. Описание полезной технологии или гаджета предпочитаю описанию заката или посиделок в кафе.