본문 바로가기

scriptplay330

Direct2D - 붓(Brush) *컬러(color) ;D2D1_COLOR_F 구조체로 표현. // D2D1_COLOR_F typedef struct _D3DCOLORVALUE { float r; // 빨강 float g; // 초록 float b; // float a; // 0=투명,1=불투명 } D3DCOLORVALUE; cs *컬러 클래스 // ColorF(UINT32 rgb, FLOAT a = 1.0) ColorF(0x9ACD32, 1.0f); // ColorF(Enum knownColor, FLOAT a = 1.0) ColorF(D2D1::ColorF::Black, 1.0f); // ColorF(FLOAT red, FLOAT green, FLOAT blue, FLOAT alpha = 1.0) ColorF(0.93f, 0.94f,.. 2019. 9. 27.
Direct2D - 기하 *기하 ;그릴 대상 객체의 모양 정보. 정점들의 좌표값들과 면 구성 정보. ID2D1Geometry를 상속한 인터페이스의 객체로 표현됨. -단순한 기하(simple geometry) -경로 기하(path geometry) -복합 기하(composite geometry) *기하의 생성 ;장치 독립적인 자원. ID2D1Factory의 함수를 호출하여 생성. CreateXxxGeometry 함수 사용. Xxx 는 Rectangle, Path 등. *기하의 렌더링 ;렌더타겟의 DrawGeometry 함수나 FillGeometry 함수를 호출. virtual void ID2D1RenderTarget::DrawGeometry( _In_ ID2D1Geometry *geometry, _In_ ID2D1Brush *br.. 2019. 9. 26.
Direct2D - 변환 ;변환은 한 좌표 공간에서 정의된 위치를 동일 좌표 공간 또는 다른 좌표 공간에서의 위치로 매핑하는 기능을 수행함. 2차원 공간에서의 변환. 모든 좌표는 동차 좌표로 표현. 좌표(x, y)의 동차 좌표식 표현은 (x, y, 1)이다. 동차 좌표로 표현 한 점 v를 다른점 v'로 변환하는 경우. 선형 변환의 경우에는 변환이 행렬로 표현될 수 있음. 즉 v를 v'로 변환하는 식이 v' = vT 로 표현됨. 여기서 T와 같이 변환을 표현하는 행렬을 변환행렬이라고 함. https://commons.wikimedia.org/wiki/File:2D_affine_transformation_matrix-ko-001.svg#/media/파일:2D_affine_transformation_matrix-ko-001.svg F.. 2019. 9. 26.
Direct2D - 렌더타겟 *렌더타겟(render target) ;장면을 그리기 위한 자원들을 생성하고 그리기 연산들을 수행하는 추상화된 핵심 자원. ID2D1RenderTarget을 상속한 자원으로 표현. ID2D1HwndRenderTarget: D2D의 대표적인 타입. ID2D1DCRenderTarget: 한 GDI 장치 컨텍스트에 렌더하는 타입. *그리기 명령 ;획(stroke), 채우기(fill) 대부분 첫 번째 인자로 하나의 기본도형(primitive)나 기하(geometry). 두 번째 인자는 하나의 붓(bruch). D2D의 렌더링에 있어서 좌표계는 왼손 좌표계를 사용함. +x축: 오른쪽 방향, +y축: 아래쪽 방향. 그리기 함수들 외에도 클리핑, 불투명 마스크(opacity mask) 적용, 좌표 공간 변환 등의 함.. 2019. 9. 26.
Direct2D - 그림파일 읽고 출력 Direct2D를 사용하여 프로그램을 할 때 이미지 파일에서 이미지를 읽거나 저장하려면 WIC(Windows Imaging Component)를 사용해야함. WIC 객체로 이미지 파일을 읽어서 Direct2D용 이미지로 변환하고 사용함. // Direct2D를 사용하기 위한 파일 포함. #include #include #pragma comment(lib, "D2D1.lib") using namespace D2D1; // Direct2D를 구성하는 각종 객체를 생성하는 객체 ID2D1Factory* gp_factory; // Direct2D에서 윈도우의 클라이언트 영역에 그림을 그릴 객체 ID2D1HwndRenderTarget* gp_render_target; // Direct2D의 기본 render ta.. 2019. 9. 25.
Direct2D - 오목 만들기 #include "stdafx.h" #include "MyWindowsProject.h" // Direct2D를 사용하기 위한 파일 포함. #include #pragma comment(lib, "D2D1.lib") using namespace D2D1; // 가로 세로 줄이 19개인 바둑판 #define X_COUNT 19 #define Y_COUNT 19 // 화면에서 바둑판의 거리 #define START_X 50 #define START_Y 50 // 줄 사이의 간격. 바둑 돌 크기 #define INTERVAL 26 // 바둑 돌의 반지름(줄 간격의 반) #define HALF_INTERVAL INTERVAL / 2 // 바둑판에 돌이 놓일 수 있는 위치 계산 #define XPOS(x) (STA.. 2019. 9. 25.