본문 바로가기

전체 글

VPython 예제10 - 2자유도 반한정계 스프링-질량 애니메이션 1 문제 위의 조건을 바탕으로 2자유도 반한정계 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 2 코드 from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 생성합니다 scene.center = vector(0,0,0) scene.width = 800 scene.height = 300 # 2개의 물체를 생성합니다. 거리는 5m 간격으로 일정합니다 block1 = box(pos=v.. 더보기
VPython 예제9 - 2자유도 스프링-질량계 애니메이션 (2) 1 문제 위의 조건을 바탕으로 2자유도 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 단, 중력에 의한 평형상태를 x1 = 5m, x2 = 10m 로 보고 중력의 영향을 무시한다. 2 코드 # code from https://www.youtube.com/watch?v=c3tX_qReGIM from vpython import * # 7.6.2 #----------------------------------------------------------------- # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 화면 객체를 생성합니다. background 색과 카메라 center 포인트를 설정한.. 더보기
VPython 예제8 - 2자유도 스프링-질량계 애니메이션 1 문제 위의 조건을 바탕으로 2자유도 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 단, 마찰력은 무시한다. 2 코드 # code from https://youtu.be/H8CzQtx9vds from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 생성합니다 scene.center = vector(0,0,0) scene.width = 800 scene.height = 300 # 2.. 더보기
VPython 예제7 - 공의 자유낙하 애니메이션 (free-fall) (2) 1 문제 위의 조건을 바탕으로 공의 자유낙하운동을 애니메이션화하는 코드를 작성하고 공의 x,v,a를 시간에 따라 그래프로 표현하는 코드를 작성하시오. 이 때, 공은 완전탄성충돌을 한다. 2 코드 # code from http://tcjd71.wixsite.com/vpython/blank-1 from vpython import * # 7.6.2 #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 설정하는 코드 # scene.range = (5,5,5) scene.center = .. 더보기
VPython 예제6 - 단진자의 운동 애니메이션 1 문제 위의 조건을 바탕으로 단진자의 운동을 애니메이션화하는 코드를 작성하시오. 이 때, 단진자의 x방향 운동속도를 화살표로 나타내시오. 2 코드 from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 설정하는 코드 scene.center = vector(0,-1,0) scene.width = 400 scene.height = 700 # 단진자와 이를 받쳐주는 바닥과 봉, 단진자의 실을 생성합.. 더보기
VPython 예제5 - 3자유도 스프링-질량계 애니메이션 1 문제 위의 조건을 바탕으로 3자유도 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 단, 마찰력은 무시한다. 2 코드 # code from https://youtu.be/oMBohUQz3NI from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 생성합니다 scene = canvas(width=800, height=300, center=vector(0,0,0)) # 3개의 물체를.. 더보기
VPython 예제4 - 진자의 등속원운동 애니메이션 1 문제 위의 조건을 바탕으로 등속원운동을 하는 물체의 애니메이션 코드를 작성하고 공의 x좌표를 x-t 그래프로 나타내는 코드를 작성하시오 2 코드 # code from http://tcjd71.wixsite.com/vpython/blank-1 from vpython import * # 7.6.2 #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창과 그래프창을 생성합니다 scene = canvas(width=600, height=600, fov = 0.01*pi) gd = gra.. 더보기
VPython 예제3 - 1자유도 스프링-질량계 애니메이션(2) 1 문제 위의 조건을 바탕으로 1자유도 스프링-질량계(1DOF spring-mass system)와 운동에너지, 탄성에너지, 역학적에너지를 애니메이션화하는 코드를 작성하시오. 단, 마찰력은 무시한다. 2 코드 # code from https://youtu.be/UoN70GjnBTI from vpython import * # 7.6.2 #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ m = 0.5 # 질량 k = 20.0 # 강성 v0 = 4.0 # 초기속도 # 마찰력을 고려할 때 사용하는.. 더보기
VPython 예제2 - 공의 자유낙하 애니메이션 (free-fall) 1 문제 위의 조건을 바탕으로 공이 27m 높이에서 자유낙하하는 애니메이션 코드를 작성하시오. 공의 질량은 무시하며 바닥과 공은 완성탄성충돌을 한다. 2 코드 # code from https://youtu.be/H8CzQtx9vds from vpython import * # 7.6.2 from math import * # 공과 바닥을 생성합니다. 공의 위치는 지면으로부터 18 + 9 = 27m 위에 있습니다. (vpython은 y축이 위아래방향입니다) ball = sphere(pos=vector(-5,18,0), radius=1, color=color.green) bottom = box(pos=vector(0,-9,0), size=vector(25,0.5,25)) # 초기속도는 x방향으로 0.7 m/s .. 더보기
VPython 예제1 - 1자유도 스프링-질량계 애니메이션 1 문제 위의 조건을 바탕으로 1자유도계 스프링-질량계(1DOF spring-mass system)을 애니메이션화하는 코드를 작성하시오 2 코드 # code from https://www.youtube.com/watch?v=c3tX_qReGIM from vpython import * # 7.6.2 g = 9.81 # 중력가속도 9.81 m/s^2 # 화면 객체를 생성합니다. backgroun 색과 카메라 center 포인트를 설정한다 scene = canvas(background = vector(0.36, 0.47, 0.23), center = vector(0, -0.7, -0.5)) # 천장의 물체를 생성합니다. 재질은 wood이고 색깔은 orange입니다. ceiling = box(length = 1.. 더보기
Git 사용법 및 다양한 옵션 설명 1 Introduction 본 포스트에서는 Git의 사용법 및 다양한 옵션들에 대해 설명한다. Git은 코드의 추가/변경/삭제 내역을 추적을 위해 널리 사용되는 버전관리 프로그램이다. 본 포스트에서 설명하는 모든 내용은 우분투 18.04 LTS 버전에서 정상적으로 작동하였다. 2 Environment setup Ubuntu 18.04 LTS 환경에서 git는 다음 명령어를 통해 간단하게 설치할 수 있다. $ sudo apt install git 처음 git을 설치하였다면 commit을 수행했을 때 입력할 작성자의 이름 및 이메일 주소를 설정해야한다. 아래 명령을 터미널에 입력한다. $ git config --global user.email "your email" $ git config --global u.. 더보기
Docker 사용법 및 다양한 옵션 설명 1 Introduction본 포스트에서는 Docker의 사용법 및 다양한 옵션들에 대해 설명한다. Docker는 컨테이너라는 가상의 이미지를 생성하여 호스트 컴퓨터와 리소스는 공유하지만 별도의 독립적인 프로그램을 돌릴 수 있는 가상화 프로그램이다. 리눅스를 사용하면서 버전 문제로 인해 빌드에 실패해 본 경험이 있는 사용자들에게 Docker를 추천한다.본 포스트에서 설명하는 모든 내용은 우분투 22.04 LTS 버전에서 정상적으로 작동하였다.2 Environment setupUbuntu 18.04 LTS 환경에서 docker는 다음 명령어를 통해 간단하게 설치할 수 있다.# Add Docker's official GPG key:sudo apt-get updatesudo apt-get install ca-c.. 더보기
gdb 디버거 사용법 및 다양한 기능 설명 1 Introduction 본 포스트에서는 리눅스에서 사용하는 C/C++ 전용 디버거 gdb의 사용법 및 다양한 기능에 대해 설명한다. gdb에는 다양한 기능들이 많지만 본 포스트에서는 간단한 코드 디버깅에 초점을 맞춰서 필자가 주로 사용하는 옵션들에 대해서만 설명한다. 포스트에서 설명하는 모든 내용들은 우분투 18.04 LTS 환경에서 테스트하였다. gdb는 대부분의 경우 우분투에 미리 설치되어 있겠지만 만약 설치되어 있지 않은 경우 아래 명령어를 통해 설치한다. $ sudo apt install gdb 2 Debug with cmake gdb로 디버깅을 수행하기 위해서는 컴파일 당시 디버깅과 관련된 옵션을 설정해줘야 한다. 디버깅 옵션없이 컴파일하는 경우 디버깅 심볼들이 바이너리 파일에 저장되지 않으.. 더보기
tmux 다중터미널 프로그램 사용법 설명 및 환경설정 1 Introduction 본 포스트에서는 리눅스의 다중터미널 프로그램 tmux의 사용법에 대해 설명한다. 포스트에서 설명하는 모든 내용들은 우분투 18.04 LTS 환경에서 테스트하였다. 필자가 생각하는 tmux의 장점은 다음과 같다. 한 프로그램에 여러 개의 터미널을 동시에 띄워놓은 상태로 빠르게 네비게이션하면서 코딩이 가능하다 터미널 작업 도중 detatch하면 백그라운드에서 계속 프로그램이 실행되고 있기 때문에 내가 했던 작업 환경을 나중에 원할 때 attatch해서 그대로 사용할 수 있다 원격에서 리눅스로 ssh 접속을 한 상태로 작업을 할 때, tmux를 사용하면 접속이 끊어지더라도 백그라운드에서 원하는 작업을 계속 실행할 수 있다 원격에서 작업한 tmux 세션을 로컬에서도 접속할 수 있고 반.. 더보기
Emacs 에디터 사용법 설명 및 C++/Python 개발환경설정 1 Introduction 본 포스트에서는 리눅스에서 emacs 에디터를 통해 C++/Python 개발환경을 구축하는 방법에 대하여 설명한다. emacs는 40년이 넘는 오랜 역사를 가지고 있는 에디터이므로 매우 다양한 코드 네비게이션 방법들이 존재하지만 본 포스트에서는 lsp-mode 를 사용하여 코드 네비게이션하는 방법에 대해 설명한다. emacs는 매우 복잡하고 많은 키바인딩으로 유명하다. 이러한 복잡한 키바인딩을 단순화시켜서 편하게 사용하기 위해 필자는 evil 모드를 설치하여 vim 키바인딩을 사용하였으며 대부분의 키바인딩을 Space 키 기반으로 변경하여 손에 부담이 덜 가도록 설정하였다. spacemacs 같이 이미 많은 사람들이 사용하는 Space 키 기반의 emacs가 존재하지만 use-.. 더보기