728x90

Computer 120

스택_Stack

스택(Stack) 스택(stack)은 데이터를 임시 저장할 때 쓰는 자료구조이다. 후입선출(LIFO:Last In First Out) 방식이다. 가장 최근에 들어온 데이터가 가장 먼저 나간다. 스택에 데이터를 넣는 작업을 Push라고 하고 반대로 데이터를 꺼내는 작업을 Pop이라고 한다. 스택배열(stk) - list형 배열 스택크기(capacity) - 스택의 최대 크기를 나타내는 int형 정수 스택포인터(ptr) - 스택에 쌓여있는 데이터의 개수를 나타내는 정수 값 스택의 구조&사용 스택은 자료의 출력 순서가 입력 순서의 역순으로 이루어질 때 요긴하게 사용하는 자료구조이다. 문서 편집기에서 undo(되돌리기) 같은 경우 이 스택 자료구조를 사용한다. 시스템 스택 함수호출 시스템 스택(system st..

5. 벡터의 결합과 생성

벡터 공간의 벡터의 합과 스칼라 곱셈 연산은 선형성이 있어서 선형 연산이라고도 한다. 선형 연산을 사용해 n개의 스칼라와 n개의 벡터를 결합해 새로운 벡터를 생성하는 수식을 선형 결합(Linear Combination)이라고 한다. 선형 결합시 모든 a가 0이 아님에도 영베터를 만들 수 있다면, 선형 결합에 사용된 벡터는 서로 ‘선형 종속의 관계’ 를 가진다. 반면 영벡터가 나오기 위해 모든 a값이 0이어야 한다면 선형 결합에 사용된 벡터들은 서로 ‘선형 독립의 관계’를 가진다 라고 표현한다. 벡터 간의 선형적 관계는 벡터 공간을 다룰 때 중요하게 사용 - 선형 독립의 관계를 가지는 벡터를 선형 결합하면 벡터 공간에 속한 모든 벡터를 생성할 수 있기 때문 두 벡터가 선형 독립의 관계를 가진다면 선형 결합..

1. 싱글톤 패턴(Singleton_Pattern)

객체를 딱 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴 싱글톤 패턴을 사용하면 객체 생성을 단 한 번으로 제한하여 객체들이 복제되는 경우를 방지할 수 있다. 메모리 낭비를 유발할 수 있다고 판단되는 경우 사용할 수 있다 장점 메모리 낭비를 방지할 수 있다. 싱글톤으로 만들어진 클래스와 다른 클래스의 인스턴스들의 데이터 공유가 쉽다 인스턴스가 절대적으로 한개만 존재하는 것을 보증하기에 개발 시 실수를 줄일 수 있다. 싱글톤 객체를 사용하지 않는 경우 인스턴스를 생성하지 않는다. 싱글톤을 상속시킬 수 있다. 단점 전역변수보다 사용하기가 불편하다 싱글톤의 역할이 커질수록 결합도가 높아져 객체 지향 설계 원칙에 어긋날 수 있다. 멀티쓰레드 환경에서 컨트롤이 어렵다 객체..

4. 벡터 공간과 벡터

스칼라와 벡터 평면의 좌표 (x,y)는 두 실수 x와 y를 결합해 만들어진다. 그렇기 때문에 좌표의 연산은 실수가 지니는 연산의 성질을 바탕으로 설계돼야 한다. 두 개 이상의 실수를 곱집합으로 묶어 형성된 집합을 공리적 집합론의 관점에서 규정한 것을 **벡터 공간(Vector Space)**이라고 하며, 벡터 공간의 원소를 **벡터(Vector)**라고 한다. 공리적 집합론의 관점에서는 특정한 수 집합을 지칭하지 않고 연산이 갖는 성질만 다루기 때문에, 좌푯값으로 사용하는 x와 y를 실수로 규정하기 보다 체의 구조를 지니는 집합, 즉 체 집합의 원소로 규정한다. 이렇게 체의 구조를 가지는 수 집합의 원소를 스칼라(Scalar)라고 부른다. 집합의 개념인 벡터 공간을 표기할 때는 주로 대문자 V를 사용하고..

3. 데카르트 좌표계

데카르트 좌표계 직선의 수 집합을 수직으로 배치해 평면을 표기하는 방식을 데카르트 좌표계(Cartesian Coordinate System) 이라고 한다. 곱집합의 원어가 데카르트 곱(Cartesian Product)임을 생각한다면 이 둘은 동일한 개념임을 알 수 있다. 데카르트 좌표계는 수평으로 배치한 첫 번째 실수 집합의 미지수를 x, 수직으로 배치한 두 번째 실수 집합의 미지수를 y로 표기하고 원점을 기준을 x축의 오른편, y축의 위편은 양의 영역을 나타낸다. 배치된 두 실수 집합으로 평면을 가르면 평면의 영역은 총 4개의 분면으로 나뉘는데, 오른쪽 상단에서 반시계 방향으로 제1사분면 - 제4사분면으로 나뉜다. 데카르트 좌표계의 한 원소는 곱집합과 동일하게 순서쌍으로 표현하며 좌표(Coordinat..

Design_Pattern

소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴 생성 패턴(Creational Patterns) 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공 싱글톤 패턴(Singleton) - 클래스의 인스턴스가 하나임을 보장하고 접근할 수 있는 전역적인 접근점을 제공하는 패턴. 디자인 패턴 중 가장 많이 알려진 패턴. 추상팩토리 패턴(Abstract Factrory) - 구체적인 클래스를 지정하지 않고 관련성이 있거나, 독립적인 객체를 생성하기 위한 인터페이스를 제공하는 패턴 빌터 패턴(Builder) - 복합 객체의 생성과정과 표현과정을 분리시켜 동일한 생성과정..

2. 함수

함수 함수(Function)란 두 집합에서 첫 번째 집합의 모든 원소가 빠짐없이 두 번째 집합의 어떤 원소에 대응하는 관계를 의미한다. 함수의 개념과 종류 두 규칙이 성립되야 함수로 인정 첫 번째 집합의 모든 원소에 대한 대응 관계가 졵재해야 함 첫 번째 집합의 원소는 두 번째 집합의 한 원소에만 대응되어야 함 왼쪽 집합과 오른쪽 집합이 가져야 하는 조건이 다르다 보니 함수에서 정의된 용어를 사용해 두 집합이 가진 대응 관계를 명확하게 전달하는 것을 권장한다. 왼쪽에 위치한 첫 번째 집합을 정의역(Domain), 오른쪽에 위치한 두 번째 집합을 공역(Codomain) 이라 한다. 정의역의 모든 원소는 공역의 원소에 대응되어야 한다. 하지만 공역의 모든 원소가 정의역에 대응할 필요는 없다. 따라서 정의역에..

1. 수와 집합

수와 집합 집합(Set) 원소(Element) 집합은 서로 구분되는 원소로 구성된 묶음을 의미 이러한 집합론을 소박한 집합론(Navie set theory) 라고 한다. 소박한 집합론 관점에서 용도에 따라 수집합을 정의하여 구분 자연수 - 물건을 세거나 순서를 지정하기 위해 사용하는 수의 집합 정수 - 자연수와 자연수의 음수 0을 포함하는 수의 집합 유리수 - 분모가 0이 아닌 두 정수의 비율 혹은 분수로 나타낼 수 있는 수의 집합 무리수 - 두 정수 비 혹은 분소로 나타낼 수 없는 수의 집합 실수 - 유리수와 무리수를 포함하는 수의 집합 복소수 - 실수와 제곱하면 -1이 되는 허수단위 i를 조합해 a+bi(a,b는 실수) 형태로 표현하는 수의 집합 사원수 - 실수와 제곱하면 -1이 되는 세 허수 단위 ..

3. MDI, 파일 입출력

MDI MDI 프로그램 작성 순서 리소스 편집 자식 윈도우를 생성하는 데 사용할 메뉴 항목을 추가 WinMain() 함수 작성 WinMain() 함수에 프레임 윈도우와 자식 윈도우를 위한 윈도우 클래스 변수를 선언, 각 변수의 필드에 값 대입 만든 윈도우 클래스 변수를 이용해 윈도우 클래스를 2개 등록(RegisterClass) 프레임 윈도우 생성(CreateWindow, ShowWindow) WndProc() 함수 작성 - 자식 윈도우 생성하기 클라이언트 윈도우를 생성하는 코드 추가(클래스 변수설정, CreateWindow, ShowWindow) 메뉴 항목을 선택했을 때 클라이언트 윈도우가 자식 윈도우를 생성하도록 메시지를 전송하는 코드 작성(클래스 변수 설정, SendMessage) ChildWndP..

Computer/WINAPI 32 2023.01.19

래스터변환(Rasterization)

래스터변환 정점, 선분, 다각형 내부를 표현하기 위해 어떤 화소를 선택해야 하는지를 결정하는 작업 선분의 기울기 > 1 - y 좌표를 1씩 증가시키면서 래스터변환 선분의 기울기 < 1 - x 좌표를 1씩 증가시키면서 래스터 변환 교차점 계산 DDA(Digital Differential Analyzer) 알고리즘 다음 교차점의 y좌표 = 이전 교차점의 y좌표 + 기울기 브레스넘 (Bresenham) 알고리즘/ 중점 알고리즘 장점 - 연산속도 화소 좌표 주소할당 방식 다각형 래스터변환 그래픽 수식 표현 Explicit Forms Impicit Forms Parametric Representation GL의 그래픽 기본요소 속성 void glPointSize(GLfloat size); void glLineWi..

728x90