디지털 미분 분석기(그래픽 알고리즘)

Digital differential analyzer (graphics algorithm)

컴퓨터 그래픽에서 디지털 차동 분석기(DDA)는 시작점과 끝점 사이의 간격에 걸쳐 변수보간하는 데 사용되는 하드웨어 또는 소프트웨어다.DDA는 선, 삼각형 및 다각형의 래스터화에 사용된다.원근법 올바른 텍스처 매핑, 2차 곡선, 복셀 통과와 같은 비선형 함수로 확장할 수 있다.

과 같은 선형 사례에 대한 그것의 가장 간단한 구현에서, DDA 알고리즘은 각 x에i 대해 방정식ii−1 x = x + 1i, y = yi−1 = y + m을 계산하여 간격의 값을 보간한다. 여기서 m은 선의 기울기이다.이 경사는 다음과 같이 DDA로 표현할 수 있다.

실제로 이 선 세그먼트에 놓여 있는 두 개의 연속된 점(x,y)은 방정식을 만족시켜야 한다.

퍼포먼스

DDA 방법은 부동 소수점 또는 정수 산술로 구현할 수 있다.고유 부동소수점 구현에는 보간 값(예: 좌표 x, y, 깊이, 색상 성분 등)당 1회의 추가 및 반올림 작업이 필요하며 출력 결과도 필요하다.이 프로세스는 빠른 추가 및 반올림 작업이 가능한 FPU가 있을 때만 효율적이다.

고정점 정수 연산을 위해서는 출력 사이클당 2회의 추가가 필요하며, 부분적인 부분이 오버플로될 경우 1회의 추가 증분 및 뺄셈이 필요하다.부분적 부분 오버플로 확률은 보간된 시작/끝 값의 비율 m에 비례한다.

DDA는 하드웨어 구현에 적합하며 처리량을 극대화하기 위해 파이프라인으로 연결할 수 있다.

알고리즘.

선형 DDA는 다른 DY 또는 dx의 단위 증분에 대해 더 작은 dy 또는 dx를 계산하는 것으로 시작한다.그런 다음 한 좌표에서 단위 간격으로 선이 샘플링되고 다른 좌표에 대해 선 경로에 가장 가까운 해당 정수 값이 결정된다.

양의 기울기가 있는 선을 고려하여 기울기가 1보다 작거나 같으면 단위 x 간격(dx=1)으로 표본을 추출하고 연속 y 값을 다음과 같이 계산한다.

첨자 k는 첫 번째 점에 대해 0부터 시작하는 정수 값을 취하며 끝점에 도달할 때까지 1만큼 증가한다.y 값은 화면 픽셀에 해당하는 가장 가까운 정수로 반올림된다.

기울기가 1보다 큰 선의 경우 x와 y의 역할을 반대로 한다. 즉, dy=1에서 표본을 추출하고 연속적인 x 값을 다음과 같이 계산한다.

음의 기울기가 있는 선을 따라 픽셀 위치를 결정하기 위해 유사한 계산을 수행한다.따라서 경사의 절대값이 1보다 작을 경우, t< < x n { {}}}}}<x_{\rm {end 즉 시작 극단점이 왼쪽에 있으면 dx=1을 설정한다.

프로그램

Turbo C++의 DDA 알고리즘 프로그램:

#include <graphics.h> #include <아이오스트림.h> #include <수학.h> #include <도스.h> #include <코니오.h>  공허하게 하다 본래의( ) {   둥둥 뜨다 x,   둥둥 뜨다 y,   둥둥 뜨다 x1, y1,   둥둥 뜨다 x2, y2, dx, dy, 스텝을 밟다;   인트로 i, gd = 탐지하다, gm;   개시그래프(&gd, &gm, "C:\\터보크3\\BGI");      뻐드렁니가 나다 << "x1 및 y1 값 입력: ";   씨네 >> x1 >> y1;   뻐드렁니가 나다 << "x2 및 y2 값 입력: ";   씨네 >> x2 >> y2;      dx = (x2 - x1);   dy = (y2 - y1);   만일 (복근(dx) >= 복근(dy))     스텝을 밟다 = 복근(dx);   다른     스텝을 밟다 = 복근(dy);   dx = dx / 스텝을 밟다;   dy = dy / 스텝을 밟다;   x = x1;   y = y1;   i = 1;   하는 동안에 (i <= 스텝을 밟다) {     퍼픽셀(x, y, 5);     x = x + dx;     y = y + dy;     i = i + 1;     지연시키다(100);   }   게걸스럽게 먹다();   근접 탐지기(); } 

참고 항목

참조

http://www.museth.org/Ken/Publications_files/Museth_SIG14.pdf


  • Alan Watt: 3D Computer Graphics, 제3판 2000, 페이지 184(래스팅 에지). ISBN0-201-39855-9