일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- stl
- 아두이노
- Array
- queue
- 아두이노 소스
- 운영체제
- Deque
- c++
- 시스템프로그래밍
- C언어
- html
- directx
- Stack
- arduino compiler
- 아두이노 컴파일러
- 통계학
- 수광 소자
- LineTracer
- Arduino
- Visual Micro
- 자료구조
- list
- set
- 라인트레이서
- 컴퓨터 그래픽스
- WinAPI
- vector
- priority_queue
- Algorithm
- map
- Today
- Total
목록Computer Theory (24)
Kim's Programming
래스터 방식 변환 래스터 변환 래스터 방식에서 객체의 변환을 할 때는 프레임버퍼 내의 사각형 모양에 해당하는 픽셀블록을 조작합니다. 픽셀블록들에 대해서 덧셉 곱셈같은 연산이 아니라 AND, OR 등 비트연산을 사용하여 픽셀블록들을 조작하여 변환시킵니다. 이러한 변환을 처리하는 래스터 함수들을 래스터연산 또는 RasterOp 라고 부릅니다. 또한 래스터 변환은 다른 위치로 옮기며 처리하는 과정이므로 bitBlt(Bit Block Transfer)라고도 불립니다. 래스터 변환 래스터 방식으로 표현된 객체 또는 프레임 버퍼내의 픽셀블록을 조작하여 변환하는 래스터연산(RasterOp)에서는 주로 COPY, OR, XOR, AND, ERASE, SET, CLEAR등의 비트 연산이 사용됩니다. 글자영역을 S, 커서..
동차좌표계 변환 동차좌표계를 써야 하는 이유 앞에서 봤던 변환에서 이동은 더하기 연산이며 신축변환과 회전 변환은 곱셈을 하는 변환입니다. 하지만 곱셈과 덧셈이 많아지기 때문에 계산량이 크게 증가하게 됩니다. 하지만 단순하게 곱하기만 연속해서 하게 된다면 계산이 간단해 지게 됩니다. 그렇게 하기 위하여 동차좌표계를 쓰게 됩니다. 동차좌표계의 표현 2차원의 평면에서 한 점 P(x,y)를 동차좌표계로 표현하면 차원이 하나 증가되어 임의의 h!=0에 대하여 P(hx,hy,h)의 형태로 표현하게됩니다. 만약 동차 좌표계에서 h=1인 경우에는 점 P(x,y,1)이 그대로 2차원 좌표 P(x,y)로 대응되므로 별도의 나눗셈이나 곱셈을 할 필요가 없습니다. 따라서 일반적으로 계산의 편의를 위하여 평면상의 점 P(x,y..
2차원 그래픽스 변환 기본적인 기하변환 2차원 그래픽스 기하변환은 기본요소를 이동시키고, 크기를 바꾸고 회전을 시키는 등, 조작을 가해서 변형하거나 할 수 있습니다. 이러한 효과를 위해서 기하변환을 수행하며 기본적인 기하변환으로는 이동, 신축, 회전이 있습니다. 이동(Translation) 2차원 평면에서 객체의 이동변환은 모양은 변하지 않고 객체의 치를 일정한 거리만큼 다른 위치로 옮기는 변환입니다. x 방향으로 tx, y방향으로 ty만큼으로 이동한 점의 식은 다음과 같이 하게됩니다. 위의 식들을 행렬을 이용하여 표현하게 되면 다음과 같이 나타나게 됩니다. 신축(Scale) 2차원 평면에서 신축변환은 x방향 및 y방향으로 확대 또는 축소시키는 기하변환입니다. 신축변환의 경우는 일반적으로 원점을 기준으로..
문자의 표현 폰트(Font)의 종류 컴퓨터그래픽스에서 사용되고 있는 폰트에는 래스터 폰트(좌) 형식과 벡터 폰트(우) 형식이 있습니다. 래스터 폰트 (Raster Font 또는 Bitmap Font)는 좌측처럼 일일이 픽셀마다 처리를 해서 글자를 만드는 것입니다. 래스터 폰트 방식은 메모리 내에서 비트맵에 대한 연산으로 처리하므로 출력속도가 빠르고 글자의 설계과정은 이미지 편집과정과 비슷하여 제작도 간단하지만 확대 했을 때 계단현상(Aliasing)이 일어납니다. 또 회전, 밀림들의 기하변환이 매우 어렵습니다. 벡터 폰트(Vector Font 또는 Outline Font)는 오른쪽 처럼 글자의 윤곽선을 여러 부분으로 나누어 직선, 원호, 곡선 등으로 표현하고 이들의 제어점을 저장하여 글자를 표현합니다. ..
영역 및 다각형 채우기 영역의 특성과 채우기 방식 영역은 같은 색상값을 갖는 이웃한(adjacent) 픽셀들의 집합으로 정의됩니다. 이 때 이웃한 픽셀간의 연결방식에는 두 가지가 있습니다. 4방향 연결방식에서는 상하좌우 4방향으로 이웃한 픽셀들만 연결 되었다고 간주하며 8방향 연결방식에서는 한 필셀로부터 8방향으로 이웃한 모든 픽셀을 연결되었다고 간주합니다. 왼쪽을 4방향 연결방식 오른쪽을 8방향 연결방식이라 하는데 이러한 영역의 연결방식에 따라서 실제 영역에 대한 판이 달라질 수 있습니다. 래스터 출력에서 영역의 경계 픽셀과 영역 내부의 픽셀을 구분해야 하는 경우에는 연결 방식을 각각 서로 다르게 적용해야 합니다. 즉 경계 픽셀을 8방향 연결 방식으로 그리면 내부 영역 픽셀은 반드시 4방향 연결 방식으..
원, 타원, 기타곡선 그리기 원그리기 원은 출력장치에서 그리는 대표적인 방법에는 극 좌표계를 이용하여 일정 간격의 선조각을 연결하여 그리는 방법과 직교 좌표계에서 정수 계산만으로 출력할 픽셀들을 구하는 Bresenham 원 그리기 알고리즘이 있습니다. 1) 극좌표계(Polar Coordinate)를 이용하는 방법 원의 공식이 일때 직교 좌표계에서 (x,y)를 함수 형태로 표현하면 다음과 같이 됩니다. 여기에 (x,y)를 극 좌표계를 이용 매개변수 를 이용한 함수로 표현하면 다음과 같이 됩니다. 만약 중심좌표가 (xc,yc)로 주워 졌을 때면 극좌표는 가 되게 됩니다. 이 때 매개변수 의 구간을 일정 간격으로 나누어 원주 상의 점을 구한 후 이 점들을 선분으로 연결합니다. 의 간격을 작게 할수록 부드러운 ..
2차원 그래픽스 2차원 그래픽스의 기본적인 출력요소는 대게 점, 선, 다중선, 다각형, 원, 타원, 곡선, 문자 등으로 구성됩니다. 점과 선 점 (Point)2차원 그래픽스의 모든 그림에는 점과 선이 가장 기본적인 구성요소로 이용되고 있으며 이러한 출력요소들은 래스터 방식의 출력장치에서 픽셀로 표현됩니다. 점의 속성으론 크기(Size), 명암(Intensity) 또는 색상(Color), 모양(Shape)등이 사용되고 있습니다. 선(Line) 선을 일반적으로 양 끝점으로 정의하며 점의 좌표는 절대좌표 또는 상대좌표를 이용하여 표현합니다. 선의 속성은 실선 점선등을 지정하는 선의 유형(Line Type), 선의 굶기(Width), 선의 명암 또는 색상 그리고 선끝 모양(Line Cap) 등이 있습니다. 선 ..
2차원 그래픽스는 말그대로 점,선, 다각형 원 곡선등과 같은 기본 도형을 이용하여 2차원 평면에 그림을 그리는 것을 의미하며, 3차원 그래픽스는 가상의 물체를 실감있게 표현하는 것을 의미합니다. 2차원 그래픽스 2차원 그래픽스는 그래픽의 표현방법과 처리방식에 따라 벡터 그래픽스와 래스터 그래픽스 두 가지가 있으며 각 방법에 대해서 알아보겠습니다. 벡터 그래픽스 벡터 그래픽스란 그래픽 객체들을 수학적 함수로 표현하여 그래픽 명령어 형태로 컴퓨터의 기억 공간에 저장하는 방식입니다. 직선은 양 두 끝점 좌표, 원은 중심과 반지름 값 등으로 표현을 하게되며 그래픽 함수들의 모임으로 메로리에 저장되어 수행됩니다. 이러한 특징때문에 함수이 그래픽 명령어 형태로 저장되기 때문에 그래픽 파일의 크기가 작으며 크기를 변..