본문 바로가기
반응형

분류 전체보기99

세 점을 지나는 평면 방정식 계산(3점 평면) 평면 방정식일반적으로 두 점을 알고 있을 때는 직선을 알 수 있고, 세 점을 알고 있을 때는 면을 정의할 수 있습니다. 그래서 평면을 계산하기 위해서는 최소 3 점이나 평면의 법선과 한 점을 알아야 합니다. 평면의 방정식은 ax+by+cz+d = 0 으로 표현합니다. a, b, c는 평면의 법선을 나타내며 d는 원점으로부터 평면 거리를 나타냅니다. ax+by+cz는 평면의 점들과 평면의 법선의 내적을 나타낸다고 이전 글에서 설명했었습니다.2023.10.20 - [3D Algorithm] - 평면 방정식 의미(개발자 관점) 평면 방정식 의미(개발자 관점)평면의 방정식은 3점이 주어지거나 평면의 노말, 한 점이 주어지면 구할 수 있습니다. 일반적으로평면의 방정식을 ax+by+cz+d = 0 이라고 나타낼 수.. 2024. 9. 26.
아이폰 사파리 주사율 120hz 설정(Safari 120hz) 사파리 주사율 변경 아이폰 ios가 18로 이번에 업데이트 되었는데, 이슈가 하나 있더군요. 애플에서 제공하는 사파리에서 주사율이 60hz이 기본 세팅이 되어서, 120hz 지원하는 기기도 전부 60hz으로 전부 세팅이 되었나 봅니다. 새로 출시한 아이폰 16도 주사율이 60hz으로 설정되어 있다고 하니 120hz로 변경하실 분들은  설정-> 앱 -> safari -> 고급 -> 기능 플래그 -> Prefer Page Rendering Updates near 60 fps 에서 기능을 off하시고 사파리를 메모리에서 해제 후 다시 실행하면 120hz로 주사율이 변경이 될 겁니다. 아이폰 사파리에서 주사율이 120hz으로 변경이 되었는지 확인하시려면 아래 사이트로 가서 그림 상단에 60hz이 아닌 120hz.. 2024. 9. 26.
비율(ratio)을 이용한 3차원 점 이동 - 두번째 비율을 이용한 점 이동점 p1(0,0,0), 점 p2(10,0,0), 벡터(1,0,0)를 알고 있을 때, 점 p2를 점 p1까지의 거리의 80%에 해당하는 지점으로 이동해 보도록 하겠습니다. 그림은 아래와 같습니다. 그림상으로는 점p1, p2만 주어지면 벡터와 dist는 모두 구할 수 있겠네요. 벡터는 p2-p1, dist는 두 점 거리 계산식이나 벡터 내적으로 구할 수 있습니다. 벡터와 관련된 내용은 아래글 참고하세요.2024.09.11 - [3D Algorithm] - 벡터 계산과 단위벡터 벡터 계산과 단위벡터벡터(Vector)벡터는 어릴 때 학교에서 크기와 방향을 가진 물리량이라고 배웠습니다. 벡터 계산은 두 점 p1(x1, y1), p2(x2, y2)가 있을 때 벡터 방향이 p1으로 향한다고 한다.. 2024. 9. 25.
삼각함수 표와 계산 및 활용 * 삼각함수는 직각삼각형에서 각도와 변의 길이 사이의 관계를 나타내는 함수로 삼각함수의 특별한 각의 값 표는 아래와 같습니다.* 기본적인 삼각함수는 sin, cos, tan 세 가지가 있으며, 이들의 정의는 직각삼각형에서 다음과 같습니다.- sinA = a/h - cosA = b/h - tanA = a/b  * 삼각함수의 그래프는 사인, 코사인, 탄젠트 함수의 주기성과 패턴을 시각적으로 보여줍니다. 각 함수의 그래프는 독특한 모양을 가지고 있으며, 이들의 주기성과 대칭성, 변화를 관찰할 수 있습니다.* 삼각함수 기타 활용 - 두 벡터를 알 때 사이각은 cos으로 구할 수 있습니다. cos(θ) = (A · B) / (|A| |B|)2024.01.17 - [3D Algorithm] - 두 벡터 사이각(내적.. 2024. 9. 23.
특정 좌표 중심에서 3차원 점 회전 원점에서의 3차원 회전글은 아래글을 통해서 설명했습니다.2024.09.13 - [3D Algorithm] - 3차원 회전 3차원 회전3차원 회전 변환행렬은 xy평면(z축 회전), xz평면(y축 회전), yz평면(x축 회전)으로 분류하여 아래와 같습니다.이러한 변환행렬을 쉽게 계산해 주는 라이브러리들이 많이 있습니다. 그darkrock.tistory.com 특정 좌표 중심에서 특정 각만큼 점을 회전하는 방법을 알려드리겠습니다. 아래와 같이 θ, vdir, hdir을 알 때 dir을 구하는 식은(vdir, hdir, dir 모두 단위 벡터입니다.)dir = hdir*cos(θ) + vdir*sin(θ) 로 계산할 수 있습니다. 참고로 단위벡터 의미는 아래글을 보시면 됩니다.2024.09.11 - [3D Al.. 2024. 9. 13.
3차원 회전 3차원 회전 변환행렬은 xy평면(z축 회전), xz평면(y축 회전), yz평면(x축 회전)으로 분류하여 아래와 같습니다.이러한 변환행렬을 쉽게 계산해 주는 라이브러리들이 많이 있습니다. 그 중 glm(OpenGL Mathematics)을 예로 설명드리면, z축으로 45도로 회전의 변환 행렬 계산 코드는 아래와 같습니다.glm::rotate(glm::radians(45.0f), glm::vec3(0.0f,0.0f,1.0f));아래는 위 코드를 적용해서 cube를 회전시키는 그림입니다.만약 큐브 중심에서 z축으로 45도로 회전시키고 싶다면, 큐브를 원점으로 옮기고 45도로 회전한 후 다시 큐브의 위치로 옮겨야 합니다.회전을 하기 위해서는 각도와 회전축, 중심점을 알아야 하지만 기본적으로 중심점은 원점으로 되.. 2024. 9. 13.
벡터 계산과 단위벡터 벡터(Vector)벡터는 어릴 때 학교에서 크기와 방향을 가진 물리량이라고 배웠습니다. 벡터 계산은 두 점 p1(x1, y1), p2(x2, y2)가 있을 때 벡터 방향이 p1으로 향한다고 한다면 벡터 계산은 v = p1-p2로 합니다. 계산된 벡터 v는 크기와 방향을 갖게 됩니다.  벡터 v는 원점(0,0)으로부터 v(x, y)까지 향하는 직선으로 표시할 수 있습니다. 이 직선의 길이가 벡터 v의 크기라고 말할 수 있습니다. 벡터 크기 계산은 √ (x-0)²+(y-0)² 이고 두 점의 길이 계산식과 같습니다. 3차원도 z를 추가해서 같은 방식으로 벡터 크기를 계산 할 수 있습니다. 단위벡터(Unit Vector)단위벡터는 벡터 크기 혹은 길이가 1인 벡터입니다. 벡터의 크기를 1로 변환하는 작업을 정규.. 2024. 9. 11.
3차원 두 직선 교차점(Two Line Intersection) 3차원에서 두 직선 교차점을 찾는 방법 2가지를 소개하겠습니다.1. 첫 번째 행렬식을 이용한 교차점 계산입니다. 점 4개 p1, p2, p3, p4가 있고 직선의 두 벡터 d1(p2-p1), d2(p4-p3)가 있을 때(두 벡터는 길이 1로 정규화)직선 1 : p1+td1 직선 2:  p3+sd2 로 볼 수 있으며, 교차점 있다는 것은  p1+td1 = p3+sd2 이 식으로 표현이 가능합니다. 이때 t와 s를 구하면 됩니다.직선 식 참고는 아래글에서 확인하세요.2024.04.24 - [3D Algorithm] - 3차원 직선 계산 및 벡터 표현(개발자 관점) 3차원 직선 계산 및 벡터 표현(개발자 관점)어렸을 때 배웠던 2차원 직선의 방정식은 y = ax+b 선언하여, 두 점을 이 식에 대입한 후 미지.. 2024. 9. 10.
Morton Code 모턴 코드(Morton Code)는 3차원 또는 고차원 좌표 데이터를 1차원으로 변환하여 효율적으로 관리하기 위한 방법입니다. 이를 Z-order curve라고도 부르며, 공간 분할에서 자주 사용됩니다. Morton Code는 각 좌표의 비트를 교차(interleave)하여 1차원으로 배열합니다.각 차원의 좌표 값에서 비트를 하나씩 순서대로 꺼내어 합칩니다. 예를 들어, 3D 좌표 (x, y, z)라면, 각 차원의 비트를 교차하여 하나의 값으로 결합합니다.#include #include using namespace std;// method to seperate bits from a given integer 3 positions apartinline uint64_t splitBy3(unsigned int .. 2024. 9. 4.
반응형