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

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

Хід роботи






У растрових системах прямі лінії будуються за допомогою пікселів, а розмір кроку в горизонтальному і вертикальному напрямках обмежується розбіжністю пікселів. Це означає, що потрібно "провести вибірку" точок прямої лінії з дискретними значеннями і визначити пікселі, найближчі до даної прямої для кожного елементу вибірки. У середовищі 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; просмотров: 381. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

Разновидности сальников для насосов и правильный уход за ними   Сальники, используемые в насосном оборудовании, служат для герметизации пространства образованного кожухом и рабочим валом, выходящим через корпус наружу...

Дренирование желчных протоков Показаниями к дренированию желчных протоков являются декомпрессия на фоне внутрипротоковой гипертензии, интраоперационная холангиография, контроль за динамикой восстановления пассажа желчи в 12-перстную кишку...

Репродуктивное здоровье, как составляющая часть здоровья человека и общества   Репродуктивное здоровье – это состояние полного физического, умственного и социального благополучия при отсутствии заболеваний репродуктивной системы на всех этапах жизни человека...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

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