전체 글 75

ChatGPT Code Interpreter

Code Interpreter는 사용자의 질문의 내용을 Python코드로 작성하여, 실행하고 결과를 보여주는 기능입니다. Python코드로 작성까지는 Chatgpt도 할 수 있었지만, 실제 실행 결과는 개발자가 직접 코드를 돌려보았어야 했는데, 이 기능이 생기면서 결과까지도 바로 볼 수 있게 된것입니다. 참조 : Code Interpreter에 대한 간단한 사용 예시 https://www.youtube.com/watch?v=1dwkGnH7f7M 참조 : Code Interpreter에 대한 기술적인 설명 https://www.youtube.com/watch?v=SPNXJg6mUN4

AI/ChatGPT 2023.07.22

ChatGPT 플러그인 사용하기

유료버전 사용해야 하나 고민중에 있는데, 플러그인 기능을 보니까 결제를 하긴 해야겠구나...... 혁펜하임 유투브에서 추천하는 플러그인들 Video Insights : 유투브 같은 비디오를 분석해서 채팅 가능 AskYourPDF : pdt 분석해서 채팅가능 Wolfram : 수학적인 연산도 해주고 그래프 그려줌(이제 산수 못한다고 놀리지 마라.) 참고 : https://www.youtube.com/watch?v=yXeUxjZTow0

AI/ChatGPT 2023.07.22

장고 시작하기

Anaconda 가상환경에 설치 pip install Django==3.2 프로젝트 생성 django-admin startproject 서버 구동 python manage.py runserver 아래와 같은 화면이 뜨고, 접속 안내 URL로 접속하면 장고 첫 화면이 나온다. 디버깅 1. Run -> Edit Configurations 클릭 2. + 버튼 -> Templates 아래 Python 클릭 후 - Script path에 현재 작업 디렉토리경로 + manage.py - Parameters에 runserver 입력 3. 환경명을 runserver로 설정하고, 개발시 파이썬 환경을 runserver로 설정 4. 코드에 브레이크포인트 찍은 후 디버그 버튼 누르면 디버깅 됨.

Web/Django 2023.07.11

장고(Django) 기본사항

장고는 App 단위로 관리 한다. App이란 이름이 "모바일 App" 같지만, 장고에서는 그냥 관리의 단위이다. App 단위로 백엔드를 분리하여 관리하면, 유지보수에 편할거 같긴하다. 시작할때 기본 App은 만들어야 한다. ​ 장고는 MTV(Model - Template - View) 구조를 사용한다. 구조적인 프로젝트의 기본이 MVC(Model - View - Controller) 구조인데 거의 흡사하다. MTV에서 M은 MVC의 M과 동일하다. MTV에서 Template는 MVC의 View와 거의 동일하다. MTV에서 View는 MVC의 View와 완전히 다르고, Controller와 동일하다(이름을 왜 이렇게 햇갈리게 지었는지 모르겠네요). ​ 서버 요청 기능을 넣으려면 urls.py에 URL 매핑..

Web/Django 2023.07.10

libigl에서 Colormap(Lookup Table) 사용하기

Colormap을 사용하는 이유 Colormap은 수학적인 결과를 색상으로 보고자 할때 많이 사용한다. 예를 들어 가우시안 곡률을 색상으로 보면 한눈에 개략적인 상황파악이 쉬워지고, 결과적으로 작성한 코드의 수식을 디버깅하기 용이해진다. Colormap에 대하여 Colormap은 0.0 ~ 1.0에 해당하는 값을 출력해주는 기능으로써 float N개짜리 vector를 넣어주면 N행 3열짜리 매트릭스 를 반환하는데 각 행에는 RGB값을 0.0 ~ 1.0 값으로 표현된 형태로 들어 있음. Colormap은 색상분포가 종류별로 많은데, 기본적으로는 RGB를 잘 섞은 Turbo 타입이 무난한거 같음 각 정점에 0.0 ~1.0 값에 해당하는 컬러맵을 대입해서 출력한 결과는 아래와 같음 Colormap 사용 방법 ..

3D Graphics/libigl 2023.05.05

libigl에서 Keyboard, Mouse Picking 이벤트 처리

이벤트 처리는 Viewer 단계에서 처리함 이벤트 함수가 미리 정의되어 있는데, 해당 함수를 교체하는 방식으로 사용. 아래의 예시는 Mesh위에서 마우스 클릭했을때, 클릭한 위치의 Face ID와 Vertex ID를 알려주는 구문 #include bool mouse_down(igl::opengl::glfw::Viewer& viewer, int button, int modifier) { // 클릭한 메시의 Face ID와 가장 가까운 Vertex ID 알려주는 구문 int fid; Eigen::Vector3f bc; double x = viewer.current_mouse_x; double y = viewer.core().viewport(3) - viewer.current_mouse_y; if (igl::..

3D Graphics/libigl 2023.05.05

libigl을 이용하여 새로운 프로젝트 시작하기

이전 글(libigl 시작하기)에서 libigl을 설치하고 예제를 돌려보았다면 나만의 프로젝트를 시작해 보자. 목표 libigl을 이용하여 내프로젝트를 만들기. 추가 목표 빠른 컴파일을 위한 환경 설정 : 원래 libigl은 header 파일만 있으면 사용할수 있어서, 사전 빌드과정이 필요는 없다. 하지만 이 방식을 사용하면 코드 한 줄을 고칠때마다 전체 빌드를 해야 하므로 개발할때 답답해진다. 코도 한줄 고치고 20초간 컴파일한다고 생각하면 개발이 너무 지루해진다. 그래서 이전글을 참고해서 빌드를 했다면 정적 라이브러리 파일이 하나 생성되는데 해당 라이브러리파일을 이용하여 빌드시간을 줄이는 환경을 설정하면 개발이 편해진다. 선행조건 개발툴 : Visual studio 2022 Community libi..

3D Graphics/libigl 2023.04.29

Harmonic Field를 이용한 정점의 가중치 계산

정점의 가중치를 왜 계산하나요? 아래 그림에서 토끼의 머리쪽의 정점에 1 값과 꼬리쪽에 0 값이 주어질 때, 나머지 정점들의 값은 어떻게 자동으로 부여될지 알고 싶을 때가 있다. 예를 들어 머리에 1Kg, 꼬리에 0Kg의 질량이 가해진다면 나머지 구간의 질량 분포를 알고 싶다거나 온도를 예로 들면 머리에 10도, 꼬리에 5도의 온도를 알고 있을때 나머지 정점에서의 온도 분포를 알고 싶을 수도 있다. 이때, 머리와 꼬리쪽 정점에 가해지는 조건을 제약조건이라 하고, 그 외의 정점을 비제약 조건이라고 하는데, 제약조건값을 입력하면, 나머지 제약조건에 값을 계산해내면 많은 문제를 풀 수 있다. 좀 더 고급 문제로 가면 텍스쳐맵핑, 스무딩, 메쉬 변형등등에도 사용된다. Harmonic Field는 뭔가요? 정점의..

알고리즘 2023.04.26