Code Less, Create More!

Simple but useful code snippets for 3D Graphic Developers

반응형

C++ 4

Squared Length를 이용한 3D 좌표의 빠른 거리 비교 방법

객체들 간의 거리를 비교하는 방법에 대해서 생각해 보도록 하겠습니다. 특히 여러 객체들 사이의 거리를 비교해 가장 가까운 점을 찾아야 할 경우라면 어떤 방법이 좋을까요? 3D 프로그래머라면 Length() 함수에 대해 잘 알고 있을 것입니다. 이 함수는 공간 상에서 두 점 간의 거리를 계산하는 함수로 게임 개발, 컴퓨터 그래픽 등 다양한 분야에서 사용됩니다. 하지만 더욱 빠르고 효율적인 거리 비교를 위해서 사용할 수 있는 LengthSquared() 함수도 있습니다. LengthSquared() 함수는 Length() 함수와 비슷하게 두 점 간의 거리를 계산하지만, 각 좌표 차이의 제곱의 합을 구하고 제곱근을 계산하지 않고 그대로 반환합니다. 이 차이는 작아 보일 수 있지만, 많은 양의 점들을 다룰 때 ..

C++ 2023.04.22

버전관리(GIT, SVN)에 친화적인 C++ 코딩 스타일

C++로 소프트웨어를 개발할 때 일관된 코딩 스타일은 개발자들이 네이밍 컨벤션, 포맷팅 및 기타 코드 관련 사항에 대해 동일한 이해를 가지도록 도와줍니다. 이는 서로 다른 스타일로 작성된 코드를 작업할 때 발생할 수 있는 혼란과 오류를 줄여줍니다. 이를 위해서 다양한 규칙들이 존재하고 한 가지로 정의되기는 어렵지만 일반적으로 아래의 원칙들을 사용할 수 있습니다. 의미 있는 변수명 사용: 변수명을 정확히 표현하는 뜻있는 이름으로 선택해서 다른 사람들이 코드를 읽을 때 이해하기 어려운 짧은 이름은 피하는 것이 좋습니다. 일관된 코딩 스타일 사용: 들여쓰기, 이름 규칙 및 서식을 포함하여 코드베이스 전체에서 일관된 스타일을 따르도록 하십시오. 이렇게 함으로써 다른 사람들이 코드를 읽고 이해하기 쉬워집니다. 효..

C++ 2023.04.22

{ } (중괄호)를 사용한 일관된 초기화 (모던 C++)

C++ 프로그래머라면, 최근 몇 년 동안 언어에 추가된 "초기화 리스트", "일관된 초기화", 그리고 "멤버 초기화"와 같은 용어를 들어봤을 것입니다. 이러한 기능들은 간단하면서도 강력하며, 더 표현력 있고 효율적인 코드를 작성하고자 한다면 살펴보는 것이 좋습니다. 이러한 새로운 초기화 방법들은 사실 객체를 값의 목록으로 초기화하는 방법입니다. 다시 말해, 생성자에 여러 개의 인수를 전달하거나 배열에 값을 할당하는 경우에 간결하고 읽기 쉬운 방법으로 이를 수행할 수 있습니다. 1. 초기화 리스트 "C++"에서 "초기화"라는 용어는 새로운 것이 아니며, 과거에도 여러 가지 변수 초기화 방법이 제공되어 왔습니다. 그러나 최신 C++에서 도입된 일관된 초기화 구문과 초기화 리스트는 초기화 프로세스를 크게 단순..

C++ 2023.03.19

SinCos() 함수를 사용한 빠른 sin, cos 계산

삼각함수(sin(), cos(), tan())는 엔지니어링부터 그래픽 프로그래밍 등 여러 분야에서 널리 사용되며 회전, 애니메이션 등 복잡한 수학적 연산에 필수적입니다. 특히 회전 연산에서는 특정한 각도에 대해 사용하는 경우가 자주 있으며 이런 경우를 위해 C++를 비롯한 많은 프로그래밍 언어에서는 sin()과 cos()을 직접 호출하거나 SinCos()을 호출하는 두 가지 방법이 있습니다. SinCos() 함수는 주어진 각도에 대해 sine과 cosine 값을 동시에 계산하는 특수한 함수입니다. SinCos()는 sin()과 cos()에 비해 많이 알려져 있지 않지만 이들을 따로 호출하는 것보다 더 빠른 경우가 많아 사용해 볼 가치가 있습니다. 그러면 그 이유는 무엇일까요? Computation ove..

C++ 2023.03.12
반응형