본문 바로가기
반응형

분류 전체보기100

3차원 삼각형 면적 계산 5가지 방법(좌표, 길이, 각도, 외적 이용) 삼각형 면적 계산 방법3차원에서 삼각형의 면적을 구하는 여러 가지 방법을 알려드리겠습니다. 첫 번째 방법은 삼각형의 밑변과 높이를 알았을 때 구하는 식입니다. 중고등학교 때 많이 배웠던 식입니다. 두 번째 방법은 삼각형의 두 변과 각을 알고 있을 때 구하는 식입니다. 이 식도 어렸을 때 많이 봤던 식입니다. 세 번째 방법은 세 변의 길이를 알고 있을 때 삼각형의 면적을 구하는 식입니다.위식을 풀어보면 아래와 같은 식이 됩니다. 네 번째 방법은 삼각형의 한 변과 두 각을 알고 있을 때 구하는 식입니다.마지막 다섯 번째 삼각형 면적을 구하는 방법은 외적을 이용한 방법입니다. 삼각형의 3점을 이용해서 두 백터를 만든 후 두 백터의 외적 길이의 절반이 삼각형의 면적에 해당합니다. 외적 길이가 0에 가까우면 두 .. 2023. 12. 26.
크롬 바이러스 및 위협 방지 알림: biserka.xyz 문제의 스파이웨어며칠 전부터 chrome 웹브라우저에서 바이러스 및 위협 방지 알림이 자꾸 뜨던데 아무래도 스파이웨어가 설치된 거 같았습니다. 웹에서 검색을 해보니 크롬 설정으로 크롬에서 알람을 막는 기능이 있어서 이걸 적용하니 더 이상 바이러스 관련 알림이 뜨지 않았습니다.알림을 끄기 위해서는  1. 크롬에서 우측 상단에 점이 3개 있는 버튼을 누른 후 설정으로 갑니다.(크롬 주소 치는 곳에서 chrome://settings 을 치셔도 됩니다.) 2. 크롬 설정으로 간 후 왼쪽에 개인 정보 보호 및 보안 누른 후 사이트 설정으로 갑니다.    개인 정보 보호 및 보안 -> 사이트 설정3. 사이트 설정으로 가면 최근 활동에 알림 관련 사이트가 보일 겁니다.(저 같은 경우는 biserka.xyz 여기서 알.. 2023. 12. 18.
Openmesh Iterators(Mesh Navigation) Openmesh 라이브러리를 이용하면 mesh에 관련된 기능을 상당히 많이 활용할 수 있는데, 그중에 가장 간단한 mesh의 모든 점들을 navigation 하는 방법을 소개해드리겠습니다. Openmesh에 점(vertex), 선(edge), 면(face)을 navigation 하기 위해서는 iterator을 사용합니다. MyMesh::VertexIter    : vertex MyMesh::FaceIter      : face MyMesh::EdgeIter      : edge 이 iterator을 이용해서 mesh의 필요한 정보를 접근할 수 있습니다. 아래 코드는 sphere.stl 파일을 읽어 들여서 vertex iterator을 선언 후 mesh의 점 정보를 콘솔 창에 print 하는 코드입니다.t.. 2023. 12. 11.
AABB OBB 차이와 의미 AABB(Axis Aligned Bounding Box), OBB(Oriented Bounding Box)AABB, OBB는 모두 3D 그래픽스 및 게임 프로그래밍 분야에서 주로 사용되는 Bounding Box 계산 기법입니다.  AABB는 축에 정렬된 바운딩 박스로, 3축 x(1,0,0), y(0,1,0), z(0,0,1)와 평행한 최소 크기의 상자를 object에 넣는다고 생각하시면 됩니다. 상자의 각 면이 세 축에 정렬되어 있기 때문에 "축에 정렬된"이라는 용어가 사용됩니다. 이 기법은 object에서 3축의 최대 최소만 계산하기 때문에, 계산이 간단하면서도 효과적인 충돌 감지를 위한 방법 중 하나로 사용됩니다. 두 AABB 간의 충돌을 감지하는 것은 각 축에 대해 겹침 여부를 확인함으로써 쉽게 수.. 2023. 12. 11.
행기준 열기준 행렬 개발자 주의점(Transform Matrix) 3차원 4x4 변환 행렬에서 Rotation과 Translation 정보를 접근할 수 있습니다. 참고로 대각행렬은 Scale 수치를 알 수 있습니다.( r00 r01 r02 t03 ) ( r10 r11 r12 t13 ) ( r20 r21 r22 t23 ) (   0    0    0    1   ) 이 형태는 행기준의 행렬이고 열기준이 되면 index를 transpose 해줘야 합니다. 이것을 우리말로 전치 행렬이라고 부릅니다. 전치를 하게 되면 아래와 같이 변하게 됩니다.( r00 r10 r20 0 ) ( r01 r11 r21 0 ) ( r02 r12 r22 0 ) ( t03 t13 t23 1 )이 행렬은 열기준 행렬이고 만약 Translation 정보를 접근하려면 4행의 값들을 접근해야 합니다. 이 .. 2023. 12. 5.
Halfedge Data Structure(반모서리 자료구조) OpenMesh는 Halfedge Data Structure를 사용하고 있습니다. 우리말로 반모서리 자료구조라고 부릅니다. Edge를 절반으로 자른 형태라고 해서 반모서리라고 합니다. 이 반모서리 구조는 3D 모델링 및 Mesh 데이터 구조에서 많이 사용하고 있습니다. 많이들 사용하시는 CGAL(The Computational Geometry Algorithms Library)도 반모서리 구조를 사용하고 있습니다. Halfedge 자료 구조는 메쉬의 각 모서리(Edge)를 나타내는데 사용되며, 이를 통해 메쉬의 구조를 효율적으로 저장하고 다양한 연산을 수행할 수 있습니다. 이 자료 구조는 메쉬의 표현을 간소화하고 메쉬 조작 작업을 더 효율적으로 만드는 데 도움이 됩니다. Halfedge 자료 구조의 기본.. 2023. 11. 29.
세 점을 지나는 원 중심 계산(Eigen Library 이용한 최소자승법) 2차원에서 세 점을 지나는 원의 중심을 Eigen 라이브러리를 이용해서 구하는 방법을 알려드리겠습니다. 우리가 일반적으로 알고 있는 원의 방정식은(x-a)^2 + (y-b)^2 = r^2이며, 이 식은 표준형이라고 합니다. 이 식을 전개해서 일반형으로 바꾸게 되면x^2 + y^2 + ax + by + c = 0 이 됩니다. 이때 원의 중심은 -a/2, -b/2가 됩니다. 이 일반형의 식을 이용해서 원의 중심을 구해보도록 하겠습니다. 일반형 식에서 2차원의 점들이 주어졌을 때, 우리가 구해야 할 미지수는 a, b, c 이므로 a, b, c들만 좌변에 있도록 식을 수정해 보면ax + by + c = -x^2 - y^2이러한 식이 됩니다. Eigen 라이브러리를 이용하여 위의 식을 풀기 위해서는 Ax = B .. 2023. 11. 28.
아이폰 자동 실행 해제(PC 연결 자동 실행) 핸드폰을 최근에 바꾼 후 충전을 주로 pc에 연결해서 하게 되었습니다. 예전 전기 콘센트에 바로 연결해서 충전할 때는 문제가 없었는데 PC로 연결해서 충전하면 아이폰 폴더가 자꾸 자동 실행돼서 뜨더군요. 아이폰 폴더에 들어가서 작업을 따로 하면 자동실행이 괜찮은 기능인데 전 충전만 하면 되는 거라서 매번 연결할 때마다 자동실행 되는 아이폰 폴더를 마우스로 일일이 닫았습니다. 근데 좀 검색을 해보니 자동실행을 off 하는 게 윈도우에 있더군요. 자동실행 off 하는 방법은 pc의 제어판에 가셔서(제 환경은 윈도우 11이지만 제어판은 윈도우 모든 버전에 있으니 윈도우가 설치된 환경은 모두 되리라 생각됩니다.) 제어판->하드웨어 및 소리 -> 자동 실행 으로 가면 제일 아랫부분에 Apple iPhone 항목이.. 2023. 11. 17.
CCW(Counter Clockwise) 정의와 판별 알고리즘 CCW은 Counter Clockwise의 줄임말이며, 우리말로 반시계방향을 의미합니다. 아래의 그림을 봤을 때 우리는 간단히 반시계방향 회전이라고 판단할 수 있습니다.2차원에서 이미지를 정면으로 봤을 때 반시계방향이라고 말할 수 있고, 만약에 3차원에서 이미지 정면이 아닌 뒷면에서 봤을 때는 시계방향 회전이라고 말할 수 있습니다. 이렇게 3차원에서는 같은 데이터라도 어느 방향에서 봤느냐에 따라 시계방향인지 반시계 방향인지 달라질 수 있습니다. CCW 판별은 백터의 외적과 내적을 이용해서 쉽게 판별할 수 있습니다. 반시계 방향을 판별하기 위한 두 백터 a, b와 두 백터를 바라보는 view 백터가 있다고 할 때 a, b 백터가 반시계 방향이라면 오른손 법칙에 의해 외적은 위로 향하게 됩니다.이 외적과 보.. 2023. 11. 13.
반응형