본문 바로가기
반응형

분류 전체보기100

3차원 점 직선 투영(Point Line Projection) 방법2 3차원에서 lineP를 지나고 백터가 lineDir인 직선에 점 p를 수직으로 투영점을 구하는 두번째 방법입니다.Dist를 아래방법으로도 계산 할 수 있습니다.Dist = (P-lineP) • lineDir                      • : 내적 Dist 만큼 lineP를 이동하여 p''를 구할 수 있습니다.p'' = lineP+Dist*lineDir 참고용 방법12023.10.13 - [3D Algorithm] - 3차원 점 직선 투영(Point Line Projection) 방법1 3차원 점 직선 투영(Point Line Projection) 방법13차원에서 lineP를 지나고 백터가 lineDir인 직선에 점 p를 수직으로 투영하는 문제입니다.여러 가지 방법이 있겠지만, 간단하게 하려면 .. 2024. 5. 17.
C++ 람다 함수 1. 정의 - 람다식, 또는 람다 함수라 부르며 익명 함수를 지칭하는 용어 2. 유의사항(C++) - C++ 11부터 지원하며, 람다의 인자에 auto는 C++ 14부터 지원 3. 사용법과 특징  - 기본형: [캡처블록](매개변수){표현식} - 캡처는 복사(=)와 참조(&)중 선택이 가능하고, 캡처형식을 지정 안 할 수도 있음([]) - 캡처는 외부변수에 영향이 있고 매개변수에는 영향을 주지 않음 - 외부변수를 사용하지 않을 때는 []로 선언 가능 4. 사용예 int main(){ int a = 5; auto func = [&](int b) {a += b;}; int c = 5; func(c); cout - 위 코드는 캡처 참조- 캡처 블록은 매개변수에 영향이 없고 위 코드에서 외부변수는 a, &로 선언.. 2024. 4. 30.
CCW 정렬 알고리즘 이 페이지에서 설명드리는 알고리즘은 3차원에서 원형태의 point loop 순서를 ccw로 정렬하는 알고리즘입니다.point 좌표를 움직이는 것은 아니고 loop index를 ccw로 정렬하는 로직입니다. index가 ccw로 정렬이 되어 있지 않는 입력데이터를 ccw로 index를 조절한다고 보시면 될 것 같습니다. ccw 정렬 알고리즘을 위해 알아야 할 개념은 두 벡터의 사이각 계산입니다.2024.01.17 - [3D Algorithm] - 두 벡터 사이각(내적, 외적 활용) 두 벡터 사이각(내적, 외적 활용)두 벡터의 내적은 아래 식과 같이 벡터 a, b가 있을 때, 두 벡터 길이(||a||, ||b||)와 코사인 곱으로 구할 수 있습니다. 참고로 벡터 길이는 3차원을 예로 들었을 때 x제곱, y제.. 2024. 4. 23.
cmd 관리자 모드에서 콘솔명령어 입력 c++ 아래코드는 cmd를 관리자 모드로 실행해서e:ai\stable 경로를 옮긴 후 bat 파일을 실행하는 예제입니다. #include #include using namespace std;int main(){ SHELLEXECUTEINFO info = { sizeof(SHELLEXECUTEINFO) }; //관리자권한, 관리자 권한 필요없으면 NULL info.lpVerb = TEXT("runas"); info.lpFile = TEXT("cmd.exe"); // /c는 cmd 닫는 명령 info.lpParameters = TEXT("/k cd /e e:\\ai\\stable & webui-user.bat"); //실행할 프로세스 info.nShow = SW_SHOW; ShellExecuteEx.. 2024. 4. 22.
Stable Diffusion webui 설치 방법과 error code 128 Stable Diffusion의사용 권장사항은 NVIDIA 그래픽에 gpu 램 6기가입니다. NVIDIA 그래픽 카드가 아니면 Stable Diffusion이 불안정하게 돌아가지 않을까 생각합니다. Stable Diffusion webui 설치 단계는 아래와 같습니다. 1. python 설치 2. Git 설치 3. stable-diffusion-webui.git 설치 4. webui-user.bat 실행 1. python 설치 아래 주소로 가서 파이선 다운 받은 후 설치를 합니다. https://www.python.org/downloads/release/python-3106/Windows installer(64-bit)를 다운 받은후 실행합니다. 실행 후 옵션에서  Add Python 3.10 to PA.. 2024. 4. 22.
내적을 이용한 특징점 계산 내적은 아래 글을 통해서 두 벡터가 얼마나 비슷한 방향인가를 알 수 있고, 정사영 개념을 이용해서 벡터나 점을 투영 할 수 있다고 하였습니다. 2024.03.12 - [3D Algorithm] - 벡터 내적 외적 계산 공식과 결과 의미 벡터 내적 외적 계산 공식과 결과 의미3차원 공간의 벡터 A = (x1, x2, x3), B = (y1, y2, y3) 가 있을 때, 내적(Inner product, Dot product)은 A⋅B = x1*y1 + x2*y2 + x3*y3 으로 계산할 수 있습니다. 코사인을 이용한 내적 계산 방식은 X의 길이와 Y의 길이 곱darkrock.tistory.com2023.10.30 - [3D Algorithm] - 벡터 내적 활용(개발자 관점) 벡터 내적 활용(개발자 관점).. 2024. 4. 9.
선형 방정식을 이용한 직선 삼각형 교차점 계산 이전글에서 벡터의 내적과 외적을 이용해서 직선 삼각형 교차점을 계산했었습니다. 2024.03.21 - [3D Algorithm] - 직선 삼각형 교차점 계산(Ray Triangle Intersection) 직선 삼각형 교차점 계산(Ray Triangle Intersection)tn: triangle normal rd: ray direction p: hit point ro: ray origin v0, v1, v2: triangle vertex 위 그림에서 ray origin으로부터 ray direction의 최단거리 t는 t = ((v0 - ro) • tn) / (rd • tn) •는 내적 로 구할 수 있습니다. t가darkrock.tistory.com 이번글에서는 선형방정식을 이용해서 직선 삼각형 교차점.. 2024. 4. 2.
직선 삼각형 교차점 계산(Ray Triangle Intersection) 그림기호 설명tn: triangle normal rd: ray direction p: hit point ro: ray originv0, v1, v2: triangle vertex 위 그림에서 ray origin으로부터 ray direction의 최단거리 t는t = ((v0 - ro) • tn) / (rd • tn)                    •는 내적 로 구할 수 있습니다. t가 구해지면 hit point p는 p = ro + rd * t  로 구할 수 있습니다. 단순히 교차점만 구하면 계산은 여기서 끝이 나지만,삼각형과 직선 ray가 교차하는지 판별을 위해서는 hit point가 삼각형 안에 있는지 판별이 필요합니다. 판별은 외적을 이용해서 할 수 있습니다. k1 = (v1-v0) x (p-v0.. 2024. 3. 21.
벡터 내적 외적 계산 공식과 결과 의미 3차원 공간의 벡터 A = (x1, x2, x3), B = (y1, y2, y3)가 있을 때, - 내적(Inner product, Dot product)은 A⋅B = x1*y1 + x2*y2 + x3*y3 으로 계산할 수 있습니다. 코사인을 이용한 내적 계산 방식은 X의 길이와 Y의 길이 곱을 cos 벡터 사이각으로 곱하면 계산됩니다. 내적의 결과는 스칼라이며, 두 벡터가 기하학적으로 얼마나 "비슷한 방향"을 향하고 있는지를 나타냅니다. 만약 두 벡터가 완전히 같은 방향을 향하고 있다면 내적은 최대값이 되고, 두 벡터가 수직이라면 내적은 0이 됩니다. 내적이 음수인 경우에는 두 벡터가 반대 방향을 향하고 있다는 것을 의미합니다.(이 특징은 코사인 그래프를 생각하시면 됩니다. 만약 두 벡터가 길이가 1인 .. 2024. 3. 12.
반응형