본문 바로가기

전체 글84

[그래픽스] 더블 버퍼링(Double Buffering) WinAPI로 간단하게 그림을 그리는 코드를 작성하였다. void ObRect::Render() { MoveToEx(g_MemDC, position.x + 100 * cosf(45 * ToRadian + rotation) * scale.x, position.y + 100 * sinf(45 * ToRadian + rotation) * scale.y, NULL); LineTo(g_MemDC, position.x + 100 * cosf(135 * ToRadian + rotation) * scale.x, position.y + 100 * sinf(135 * ToRadian + rotation) * scale.y); LineTo(g_MemDC, position.x + 100 * cosf(225 * ToRadian.. 2022. 12. 12.
[C++] 추상클래스 and 인터페이스 추상클래스와 인터페이스는 무엇일까. 이를 알기 위해서는 우선 순수가상함수라는 것을 알아야 한다. https://eunsikk.tistory.com/5 [C++] 가상함수 & 순수가상함수 클래스는 내부의 멤버로 변수, 구조체, 함수 등을 가질 수 있다. 이 때, 함수를 정의하고 이를 자식 클래스에서 같은 이름, 같은 매개변수의 함수를 사용하기 위해서는 어떻게 해야 할까? 이 경우 eunsikk.tistory.com 여기서 설명했듯이 순수가상함수는 반드시 자식 클래스에서 재정의가 이뤄져야 하는 가상함수이다. 그리고 이 순수가상함수가 하나라도 포함이 되어 있다면 그것을 바로 추상클래스라고 부른다. 추상클래스의 특징은 바로 객체화가 불가능하다는 것이다. 순수가상함수는 오로지 상속에 사용하기 위한 용도이기 때문에.. 2022. 12. 12.
[C++] 가상함수 & 순수가상함수 클래스는 내부의 멤버로 변수, 구조체, 함수 등을 가질 수 있다. 이 때, 함수를 정의하고 이를 자식 클래스에서 같은 이름, 같은 매개변수의 함수를 사용하기 위해서는 어떻게 해야 할까? 이 경우 사용하는 것이 바로 '가상함수' 이다. 가상함수란, 클래스의 상속 관계에서 부모 클래스가 자식 클래스에게 같은 이름, 같은 매개변수의 함수를 상속시켜 자식 클래스에서도 사용이 가능하게 끔 하는 것을 의미한다. 코드로는 virtual이라는 키워드를 붙여서 사용하게 되는데, virtual이 붙은 함수들은 가상함수 테이블에 그 주소가 등록이 되어 자식 클래스에서 함수를 호출할 때, 위치를 확인하여 찾아갈 수 있게 된다. class Basic { public: virtual void Print(); // virtual .. 2022. 12. 12.
삼각함수 & 삼각비 삼각함수란? 각의 크기를 삼각비로 나타내는 함수를 의미한다. 피타고라스의 정의를 따르면 삼각형의 각 변의 길이는 서로에 영향을 준다. 이와 마찬가지로 삼각형의 세 내각은 합이 180º로 일정하기 때문에 서로에 영향을 받는다. 이를 간단히 그림으로 나타내면 다음과 같다. 이 부분만으로는 어느 각이 싸인이고 어느 각이 코싸인인지 분간하기 어렵다. 그래서 그것을 확실하게 하기 위해 다음 그림을 준비했다. 위 그림을 통해 어느 각을 구하는 공식인지 확인이 가능하다. 특정 내각의 크기를 구하기 위해서 공식을 적용하여 값을 구했다면 여기에 라디안을 이용해야 삼각함수는 좌표상 두 정점 사이의 거리를 이용해서 두 정점의 각도를 구할 수 있다. 이를 이용해 회전을 표현할 수 있는 것이다. 중점을 설정하고 LineTo 함.. 2022. 12. 7.