목록2024/08 (19)
개발하는 리프터 꽃게맨입니다.
변환 행렬 대표적인 선형 트랜스폼은 3개 존재합니다.바로 크기, 회전, 이동 변환이죠. 2차원에서 이들의 변환행렬을 한 번 살펴봅시다. 크기 변환 행렬 크기 변환 행렬에 대해서 살펴봅시다.크기 변환은 이런 식으로 한 좌표를 일정한 비율로 키워야 합니다.예를 들어 P(2, 4) 라고 했을 때,x축으로 2배 y축으로 3배 늘린다고 했을 때,P'(2 * 2, 3 * 4) 가 됩니다. 이런 식으로 정점을 늘린 후,정점끼리 선을 그리면 마치 크기가 늘어난 듯한 모습을 보여줍니다.그러면 이렇게 정리할 수 있겠죠점 P(x, y) 가 있다고 할 때, x축으로 a배 만큼 y축으로 b배 만큼 늘린다면 그 좌표를 P(ax, by) 라고 할 수 있다. 그러면 크기 변환 행렬은 다음과 같이 구할 수 있습니다. 회전 변환 행렬..
서론 선을 그리는 것은 힘든 일은 아닙니다. 점 P1 과 점 P2가 있다고 합시다. 위 그림과 같이 식을 전개하면 P1P2 사이의 점 Px 를 구할 수 있습니다. 이 공식을 이용해서 직선을 긋는 알고리즘을 한 번 작성해보겠습니다. 위 선 그리기 알고리즘을 통해서 삼각형을 하나 그려봤습니다.이 선 그리기 알고리즘은 꽤나 간단하고 그럴싸해 보이지만 성능상 문제가 존재합니다. 일단, t의 증가량을 어떻게 설정해야 할 지 애매하기 때문에 필요 이상으로 점을 많이 찍거나, 혹은 필요 이하로 점을 덜 찍을 가능성이 존재합니다. 그 다음은 부동소수점 곱셈으로 연산을 수행하기 때문에 속도가 떨어질 수 있습니다. 결국 픽셀좌표 하나하나는 정수 값을 가지기 때문에, 이론상 정수만을 해용해서 선을 그릴 수 있습니다. 첫 번..
#pragma oncenamespace MC{ template class Queue { public: Queue() : m_head(0), m_tail(0), m_count(0), m_capacity(1), m_data(1) {} void Push(T&& value) { if (m_count == m_capacity) { Reallocate(CapacityLogic()); } m_data[m_tail] = std::move(value); m_tail = (m_tail + 1) % m_capacity; m..
난이도 하1. https://www.acmicpc.net/problem/2738 2. https://www.acmicpc.net/problem/10996 3. https://www.acmicpc.net/problem/13241 난이도 중1. https://www.acmicpc.net/problem/101582. https://www.acmicpc.net/problem/1439 3. https://www.acmicpc.net/problem/14916 4. https://www.acmicpc.net/problem/14405 난이도 상1. https://www.acmicpc.net/problem/10974 2. https://www.acmicpc.net/problem/16931 3. https://www.a..