[PYTHON] 파이썬 예제코드입니다 -

vpython(5) 3자유도 스프링-질량계 애니메이션, 3DOF mass-spring system 

제가 프로그래밍을 공부하기 위해 작성한 코드입니다
혹시 비슷한 분야를 공부하시는 분들은 허접한 코드지만 참고해서 봐주세요~
코드는 대부분 여러 고수님들의 코드를 참고해 작성했습니다 :-)

3자유도계 스프링-질량 시스템

 

위의 조건을 바탕으로
3자유도계 스프링-질량계(3DOF Spring-Mass System)의 움직임을
 애니메이션화 하는 코드를 작성하시오. 
단 마찰력은 무시한다

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# code from https://youtu.be/oMBohUQz3NI
from visual import *
from math import *
 
#------------------------------------------------------------------
# 그래픽 그려주는 코드
#------------------------------------------------------------------
 
# 그래픽창을 생성합니다
scene.range = (16,12,12)
scene.center = (0,0,0)
scene.width = 800
scene.height = 300
 
# 3개의 물체를 생성합니다. 거리는 5m 간격으로 일정합니다
block1 =box(pos=(-5,0,0), size=(2,2,2), color=color.blue, opacity=0.7)
block2 = box(pos=(0,0,0), size=(2,2,2), color=color.blue, opacity=0.7)
block3 = box(pos=(5,0,0), size=(2,2,2), color=color.blue, opacity=0.7)
 
# 바닥 생성
bottom = box(pos=(0,-1.25,0), size=(20.5,0.5,7))
 
# 벽 생성
wall1 = box(pos=(-10,1,0), size=(0.5,4,7))
wall2 = box(pos=(10,1,0), size=(0.5,4,7))
 
# 스프링 생성
spring1 = helix(pos=(-10,0,0), axis=7, radius=0.5, coils=8, thickness=0.1, color=color.gray(0.5))
spring2 = helix(pos=block1.pos, axis=7, radius=0.5, coils=8, thickness=0.1, color=color.gray(0.5))
spring3 = helix(pos=block2.pos, axis=7, radius=0.5, coils=8, thickness=0.1, color=color.gray(0.5))
spring4 = helix(pos=block3.pos, axis=7, radius=0.5, coils=8, thickness=0.1, color=color.gray(0.5))
 
x1 = 3.  # 초기 위치
x2 = 0.
x3 = 0.
 
= 10.  # 강성
= .5   # 질량
 
v1 = 0.  # 초기속도
v2 = 0.
v3 = 0.
 
#------------------------------------------------------------------
# 애니메이션 코드
#------------------------------------------------------------------
= 0
dt = 0.01 
label1 = label()
label2 = label()
label3 = label()
 
while True:
    rate(100# 100 Hz, 초당 100번씩 루프를 돌고 dt=0.01이므로 시간 t는 실제 시간과 일치합니다
    t += dt
    
    # 운동방정식을 통해 a1,a2,a3를 구하고 v,x로 적분합니다
    a1 = k/m*(x2 - 2*x1)
    a2 = k/m*(x3 - 2*x2 + x1)
    a3 = k/m*(-2*x3 + x2)
 
    v1 += a1*dt
    v2 += a2*dt
    v3 += a3*dt
 
    x1 += v1*dt
    x2 += v2*dt
    x3 += v3*dt
 
    # 블락의 실시간 위치를 갱신합니다
    block1.pos.x = x1-5
    block2.pos.x = x2
    block3.pos.x = x3+5
 
    # 스프링 또한 블락과 같이 이동합니다
    # pos : 스프링 좌측의 좌표
    spring2.pos = block1.pos
    spring3.pos = block2.pos
    spring4.pos = block3.pos
 
    # axis : 스프링 우측의 좌표
    spring1.axis = block1.pos.x - wall1.pos.x
    spring2.axis = block2.pos.x - block1.pos.x
    spring3.axis = block3.pos.x - block2.pos.x
    spring4.axis = wall2.pos.x - block3.pos.x
 
    label1.pos = wall2.pos + vector(0.1,-3,0)
    label1.text = 'time : %.2f s' % t
    label2.pos = wall2.pos + vector(0.1,-4.3,0)
    label2.text = 'mass : %.1f kg' % m
    label3.pos = wall2.pos + vector(0.1,-5.6,0)
    label3.text = 'k : %.2f N/m' % k
 
Colored by Color Scripter

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
32 (엑셀을 이용한) 천체물리학의 이해 secret 졸리운_곰 2023.12.02 0
31 [(응용)수학] Why does ∫∞0e−t2cos(at)dt=12π−−√e−a2/4∫0∞e−t2cos⁡(at)dt=12πe−a2/4 hold? file 졸리운_곰 2022.11.08 14
30 [전산물리학] science-physics package on Ubuntu 20.04 LTS (Focal Fossa) 졸리운_곰 2022.02.22 42
29 [전산물리학] 15 Best Free Linux Physics Tools file 졸리운_곰 2022.02.22 34
28 [전산물리학] Debian Science Physics packages 졸리운_곰 2022.02.22 47
27 Mathematica를 처음 시작할 때 기초! file 졸리운_곰 2022.02.16 79
26 [PYTHON] 파이썬 예제코드입니다 - vpython(10) 2자유도 반한정계 스프링-질량 애니메이션, 2DOF mass-spring system file 졸리운_곰 2020.06.10 802
25 [PYTHON] 파이썬 예제코드입니다 - vpython(9) 2자유도 스프링-질량계 애니메이션2, 2DOF mass-spring system file 졸리운_곰 2020.06.10 646
24 [PYTHON] 파이썬 예제코드입니다 - vpython(8) 2자유도 스프링-질량계 애니메이션, 2DOF mass-spring system file 졸리운_곰 2020.05.27 322
23 [PYTHON] 파이썬 예제코드입니다 - vpython(7) 공의 자유낙하 애니메이션2, free-fall file 졸리운_곰 2020.05.27 1046
22 [PYTHON] 파이썬 예제코드입니다 - vpython(6) 단진자의 운동 애니메이션, simple pendulum file 졸리운_곰 2020.05.25 3991
» [PYTHON] 파이썬 예제코드입니다 - vpython(5) 3자유도 스프링-질량계 애니메이션, 3DOF mass-spring system file 졸리운_곰 2020.05.25 350
20 3D programming with Vpython file 졸리운_곰 2020.05.10 146
19 [PYTHON] 파이썬 예제코드입니다 - vpython(4) 진자의 등속원운동 애니메이션, uniform circular motion file 졸리운_곰 2020.05.10 661
18 [PYTHON] 파이썬 예제코드입니다 - vpython(5) 3자유도 스프링-질량계 애니메이션, 3DOF mass-spring system file 졸리운_곰 2020.05.10 238
17 [PYTHON] 파이썬 예제코드입니다 - vpython(3) 1자유도 스프링-질량계 애니메이션2, 1DOF mass-spring system file 졸리운_곰 2020.05.10 299
16 [PYTHON] 파이썬 예제코드입니다 - vpython(2) 공의 자유낙하 애니메이션, free-fall file 졸리운_곰 2020.05.10 1165
15 [PYTHON] 파이썬 예제코드입니다 - vpython(1) 1자유도 스프링-질량계 애니메이션, 1DOF mass-spring system file 졸리운_곰 2020.05.10 742
14 Computational Physics, 2ed, Giordano, Nakanishi (2005).pdf file 졸리운_곰 2020.03.24 82
13 http://www.physics.purdue.edu/~hisao/book/www/samples.html 졸리운_곰 2020.03.24 73
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED