Цифровий диференціальний аналізатор

Алгоритм Цифровий диференціальний аналізатор (англ. DDA - Digital Differential Analyzer) будує 8-зв'язну лінію.

Для початку, нехай P1 = (0, 1); P2 = (1, 1). Для визначення того, який з пкселів, - P1 або P2, - варто зафарбувати, зрівняємо відстані до них. У силу подоби трикутників, утворених перетинанням відрізка, що малюється, прямій x = 1 і перпендикулярами з P1 і P2 на відрізок (див. мал. 6.4), досить зрівняти e (ординату перетинання відрізка c прямій x = 1) с. Далі, для наступного кроку алгоритм працює аналогічно з урахуванням зміни e - ординати перетинання відрізка з наступної вертикальної прямої .

 

Рис. 6.4. Цифровий диференціальний аналізатор.

// Координати кінців відрізка - (0,0) і (a,b) e = b/a; // Поточна ордината?e = b/a; // Збільшення ординати // (x,y) - Координати поточної крапкиx = 0; y = 0; while( x < a ){ plot(x, y); if( e > 1/2 ) { // d : діагональний зсув x++; y++; // т.к. відбувся зсув по y на 1 нагору e += ?e - 1; } else { // s : горизонтальний зсув x++; e += ?e; }}

Лістинг 6.1. Цифровий диференціальний аналізатор

Недоліком даного алгоритму є те, що він працює із числами із плаваючою крапкою.








Дата добавления: 2015-04-03; просмотров: 1023;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.