Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Хід роботи





У растрових системах прямі лінії будуються за допомогою пікселів, а розмір кроку в горизонтальному і вертикальному напрямках обмежується розбіжністю пікселів. Це означає, що потрібно "провести вибірку" точок прямої лінії з дискретними значеннями і визначити пікселі, найближчі до даної прямої для кожного елементу вибірки. У середовищі VC розглянемо алгоритми перетворення стандартів розгортки прямої.

1. Цифровий диференційний аналізатор (ЦДА) — це алгоритм перетворення стандартів розгортки прямої лінії, оснований на обчисленні або за рівнянням або за рівнянням . Пряма розбивається на одиничні відрізки по одній координаті, а для іншої координати визначаються відповідні цілі значення, найближчі до даної прямої.

#include <stdlib.h>

#include <math.h>

inline int round (const float а) {

return int (а + 0.5); }

void lineDDA (int x0, int y0, int xEnd, int yEnd){

int dx = xEnd-x0, dy = yEnd-y0, steps, k;

float xIncrement, yIncrement, x = x0, y = y0;

if (abs (dx) > abs (dy))

steps = abs (dx);

else

steps = abs (dy);

xIncrement = float (dx) / float (steps);

yIncrement = float (dy) / float (steps);

setPixel (round (x), round (y));

for (k =0; k < steps; k++){

x += xIncrement;

y += yIncrement;

setPixel (round (x), round (y));

}

}

2. Растровий алгоритм створення прямих ліній розроблений Брезенхемом (Bresenham), у ньому обчислюються тільки цілочислові значення приростів. Крім того, алгоритм побудови прямих Брезенхема можна адаптувати для зображення кіл та інших кривих.

Реалізація алгоритму побудови прямої лінії Брезенхема для тангенса кута нахилу в діапазоні 0 < т < 1 наведена в наступній процедурі. Тут вводяться координати кінців відрізка, а пікселі відображаються від лівого кінця до правого.

#include <stdlib.h>

#include <math.h>

/* Процедура побудови відрізка (Брезенхема) для |m|<1,0.*/

void lineBres (int x0, int y0, int xEnd, int yEnd){

int dx = abs (xEnd-x0), dy = abs(yEnd-y0);

int p = 2 * dy - dx;

int twoDy = 2 * dy, twoDyMinusDx = 2 * (dy-dx);

int x, y;

/*Визначається, який кінець взяти як початкове *положення. */

if (x0 > xEnd) {

x = xEnd;

y = yEnd;

xEnd = x0;

}

else {

x = x0;

y = y0;

}

setPixel (x, y);

while (x < xEnd) {

х++;

if (P < 0)

р += twoDy;

else {

y++;

р += twoDyMinusDx;}

setPixel (x, y);

}

}

/* Процедура для відображення точки*/

Void setPixel (int xCoord, int yCoord){

glBegin (GL_POINTS);

glVertex2i(xCoord, yCoord);

glEnd();

}







Дата добавления: 2015-10-19; просмотров: 404. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Studopedia.info - Студопедия - 2014-2026 год . (0.01 сек.) русская версия | украинская версия