728x90

전체 글 715

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이 되는 세 허수 단위 ..

8. 상속과 다형성

객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수 클래스 포인터는 포인터 객체뿐만 아니라, 클래스를 상속하는 유도 클래스의 객체도 가리킬 수 있다 C++에서, AAA형 포인터 변수는 AAA 객체 또는 AAA를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다.(객체의 주소 값을 저장할 수 있다.) 함수 오버라이딩(Function Overriding) - 함수 재정의 오버라이딩이 된 기초 클래스의 함수는, 오버라이딩을 한 유도 클래스의 함수에 가려진다. C++ 컴파일러는 포인터 연산의 가능성 여부를 판단 할 때, 포인터의 자료형을 기준으로 판단하지, 실제 가리키는 객체의 자료형을 기준으로 판단하지 않는다. 포인터 형에 해당하는 클래스에 정의된 멤버에만 접근이 가능하다. 가상함수의 선언은..

언어/C++ 2023.01.26

7. 상속(Inheritance)의 이해

기능의 처리를 실제로 담당하는 클래스 - ‘컨트롤(Control) 클래스’ 또는 ‘핸들러(Handler) 클래스’ A 클래스가 B 클래스를 상속하게 되면, A 클래스는 B 클래스가 지니고 있는 모든 멤버를 물려받는다. 즉, A 객체는 A 클래스에 선언된 멤버 외 B 클래스에 선언 된 멤버도 존재하게 된다. A 클래스 상위 클래스 기초(Base) 클래스 슈퍼(Super) 클래스 부모 클래스 B클래스 하위 클래스 유도(Derived) 클래스 서브 클래스 자식 클래스 기초와 유도라는 말을 자주 사용한다. 유도 클래스의 객체생성 과정에서 기초 클래스의 생성자는 100% 호출된다 유도 클래스의 생성자에서 기초 클래스의 생성자 호출을 명시하지 않으면, 기초 클래스의 void 생성자가 호출된다. 클래스 멤버는 해당 ..

언어/C++ 2023.01.26

6. 클래스의 완성

정보은닉(Information Hiding) 프로그래머가 실수를 했을 때, 이는 어떻게든 발견되어야 한다. 제한된 방법으로의 접근만 허용해서 잘못된 값이 저장되지 않도록 도와야 하고, 또 실수를 했을 때, 실수가 쉽게 발견되도록 해야 한다. 멤버변수를 private로 선언하고, 해당 변수에 접근하는 함수를 별도로 정의해서 ,안전한 형태로 멤버 변수의 접근을 유도하는 것이 바로 ‘정보은닉’ const 함수 이 함수 내에서는 멤버변수에 저장된 값을 변경하지 않겠다 const 선언이 추가된 멤버함수 내에서 멤버변수의 값을 변경하는 코드가 삽입되면, 컴파일 에러가 발생한다. const 함수 내에서는 const가 아닌 함수의 호출이 제한된다. 캡슐화(Encapsulation) 하나의 목적 하에 둘 이상의 기능이 ..

언어/C++ 2023.01.19

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