본문 바로가기
반응형

분류 전체보기100

사이각 벡터 계산 두 벡터의 사이각 계산은 아래글을 통해 설명을 했었습니다.2024.01.17 - [3D Algorithm] - 두 벡터 사이각(내적, 외적 활용) 두 벡터 사이각(내적, 외적 활용)두 벡터의 내적은 아래 식과 같이 벡터 a, b가 있을 때, 두 벡터 길이(||a||, ||b||)와 코사인 곱으로 구할 수 있습니다. 참고로 벡터 길이는 3차원을 예로 들었을 때 x제곱, y제곱, z제곱의 수치들을 모darkrock.tistory.com 이번 글은 아래 그림과 같이 벡터 AC와 CB를 알고 A 각을 알고 있을 때 AB에 해당하는 벡터를 계산하는 식을 알려드리겠습니다.  사실 벡터 AC와 A각을 알면 AB에 해당하는 벡터를 계산할 수 있습니다. 백터 AB를 계산하기 위해 CB의 벡터를 계산해야 하는데 2차원에서.. 2024. 3. 8.
비율(ratio)을 이용한 3차원 점 이동 아래 그림을 보시면 파란 점들은 알고 있는 정보이고, 빨간 점은 계산해야 할 점입니다.pl(10,0,0)을 시작점으로 길이 L이 10이고 방향은 dir(1,0,0) 직선이 있습니다. 점 p(12,-10,0)가 있을 때 직선의 길이 50%에 해당하는 빨간 점을 구하는 예제입니다. 기본 아이디어는 현재 점 p가 직선의 길이에 얼마만큼의 비율로 위치해 있는가를 계산하고 그 계산한 것을 목표 50%의 차이를 계산해서 그 차이만큼의 거리를 이동하는 것입니다. 이걸 계산하기 위해  1. pl과 p사이의 백터 1,0,0 정사영 길이 2. p위치에서 직선 길이에 대한 비율 3. 목표 비율과 현재 비율 차이 4. 비율차이의 거리 계산 5. 점 p 이동 이렇게 5단계로 계산 해보도록 하겠습니다.1번은 (p-pl) • di.. 2024. 2. 20.
3차원 스케일(Scale)과 비율(Ratio) Geometry에서 object의 크기를 조절할 때 스케일(Scale)을 이용할 때가 있습니다. 이때 스케일 수치는 비율을 사용하게 됩니다. 스케일 수치가 1(100%=100/100)이면 object의 현재 크기를 유지하는 것이고, 0.5(50%=50/100)면 현재 크기에서 절반으로 줄이는 결과가 됩니다.  변환행렬에서 스케일과 관련된 인자는 대각행렬의 요소들입니다. 변환행렬에 임의의 점 px, py, pz를 곱하게 되면 스케일 수치를 각각의 좌표에 곱해주어서 스케일이 적용된 좌표를 계산하게 됩니다. 그래서 스케일 수치가 1이면 px, py, pz가 되고 0.5면 현재 좌표에서 0.5를 곱하는 형태가 되어 크기가 줄어들게 됩니다.이 스케일을 이용해서 현재 형상에서 목표 형상으로 변형시키는 간단한 예제를.. 2024. 2. 20.
Visual Studio breakpoint(중단점) 위치 오류 Breakpoint 오류며칠 전부터 Visual Studio에서 디버그를 하는데 breakpoint 위치가 원하는 곳에 있지 않아서 "왜 이러지" 하다가 최근에 웹에서 필요한 기능이 있어 그 코드를 복사 후 붙이기 한 것이 문제였습니다. 웹에 작성된 코드에 개행문자를 그대로 Visual Studio에 복사해서 breakpoint 위치가 불안정하게 위치되었습니다. 웹에서 검색해 보니 Visual Studio 옵션을 조금 건드려 주면 해결할 수 있었습니다. Visual Studio FILE->Advanced Save Options에 가보면 Line endings에 Windows(CR LF) 변경 후 컴파일 하시면 breakpoint 위치가 제대로 작동하여 디버그 하실 때 더 이상 breakpoint 위치 문.. 2024. 2. 16.
연봉 인상률 계산 회사를 다니다 보면 1년마다 연봉 계약을 하게 되는데 인상된 금액이 얼마인지 궁금할 때가 있습니다. 작년과 올해 금액만 보고 차이를 계산해서 얼마가 올랐는지 알 수 있지만 남들과 비교를 위해서는 연봉 인상률을 알아야 할 때가 있습니다. 연봉 인상률이 나는 5%인데 남들이 10% 올랐다 하면 더욱 분발해서 연봉 인상률을 올리기 위해서 노력해야 하겠죠. 뭐 내가 금수저라서 "연봉은 별로 신경 안 써" 이러면 연봉 인상률과 상관없이 그냥 회사만 잘 다니시면 될 것 같습니다.연봉 인상률을 계산하기 위해서는 아래와 같은 식을 이용해서 계산하시면 됩니다. 인상률(단위 %) = ((인상 후/인상 전) - 1) x 100  예를 들어 작년에 5000만원이였는데 올해 5500만원이다 하면 연봉 인상률은, ((5500/5.. 2024. 2. 16.
행렬식(Determinant)과 외적/내적 관계 행렬의 역행렬을 구할 때 행렬식(Determinant)이 0인지 아닌지를 판별해서 역행렬 존재 여부를 판별할 수 있습니다. 행렬식이 0일 때의 의미를 외적과 내적을 이용해서 설명해 드리도록 하겠습니다.3x3 행렬에서 행렬식을 구하기 위한 식은 아래와 같습니다.  각 행을 하나의 백터라고 보면 2행과 3행의 백터를 외적하여 1행과 내적 한 식으로 볼 수 있습니다. 그래서 식을 다시 쓰면 아래와 같습니다. 1행 i, j, k를 a라고 하면, det = dot(a, cross(u, v)) 두 백터 u, v를 외적을 하게 되면, uv 평면의 수직인 법선 백터가 계산됩니다. 이 법선 백터에 a(i, j, k) 백터를 내적 하게 되면 결과 값을 통해 두 백터의 관계를 알 수 있습니다. 내적은 코사인 그래프와 연관이.. 2024. 2. 6.
두 벡터 사이각(내적, 외적 활용) 사이각 계산두 벡터의 내적은 아래 식과 같이 벡터 a, b가 있을 때, 두 벡터 길이(||a||, ||b||)와 코사인 곱으로 구할 수 있습니다.참고로 벡터 길이는 3차원을 예로 들었을 때 x제곱, y제곱, z제곱의 수치들을 모두 더해 루트를 씌어주면 계산이 됩니다.위 식을 이용해서 두 벡터의 각을 구하려면 아래와 같이 아크코사인을 이용하면 됩니다. 아래 그림의 x, y는 벡터를 의미합니다. 벡터 x에 해당하는 3차원 좌표 x, y, z가 있고 벡터 y 또한 3차원 좌표 x, y, z가 있습니다. wiki 그림을 가져와서 혼동을 줄 수 있는 점 양해 바랍니다. -.-;두 벡터의 길이가 1인 단위 벡터이면 두 벡터의 길이를 나눠줄 필요 없이(길이가 1이기 때문에) 아크코사인에 두 벡터의 내적만 이용해서 각.. 2024. 1. 17.
변환행렬 사원수 변환 코드(Matrix to Quaternion using Eigen Library) 3차원 4x4변환행렬을 알고 있을 때 사원수의 w, x, y, z를 계산하는 것을 Eigen Library에서 제공하고 있어 코드를 소개합니다. Quaternion은 우리말로 사원수라고 하는데 사원수 식은 아래와 같이 표현할 수 있습니다. q = w+xi+yj+zk 우리가 잘 알고 있는 오일러 각을 사용하면 짐벌락(Gimbal Lock) 현상이 발생하는데 이 현상을 피하기 위해서는 사원수를 사용해야 합니다. 사원수를 사용하기 위해서는 위 식의 w, x, y, z를 알아야 합니다. 참고로 i, j, k는 허수 부분을 나타내는 세 개의 가상 백터입니다. 4x4 변환행렬 입력으로 사원수의 w, x, y, z를 구하는 코드입니다.(행렬의 4행의 값은 translate에 관련된 값입니다.) Eigen::Matri.. 2024. 1. 12.
Manifold와 Nonmanifold 차이(Mesh Processing) Manifold와 NonmanifoldMesh processing에서 Manifold와 Nonmanifold는 메쉬의 토폴로지(Topology)에 관련된 용어로 사용됩니다. 토폴로지는 한글로 위상이라고 말하는데 Mesh의 vertex, face, edge 연결관계를 나타내며, 임의의 vertex에서 연결된 face들이나 edge들의 정보를 알 수 있도록 하는 게 위상 정보로 보시면 되겠습니다.  Manifold는 한글로 다양체라고 부르는데, 아래 그림과 같이 한 개의 edge가 두 개의 face를 공유하거나(좌측 그림), 한 개의 점에서 연결되어 있는 점들이 1개의 집합으로 이루어졌을 때(우측 그림) manifold라고 부릅니다. 반면에 Nonmanifold는 비다양체라 부르며 한 개의 edge가 3개 .. 2024. 1. 10.
반응형