-
Notifications
You must be signed in to change notification settings - Fork 0
/
pendulum.sh
91 lines (73 loc) · 1.9 KB
/
pendulum.sh
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
source ./baSHed2d.sh
clear
rows=30
cols=50
originX=25
originY=0
bobX=20
bobY=20
len=20
angleV=0
angleA=0
angle=$(floatDivision $PI 5)
gravity=1
xco=()
yco=()
n=13
coSize=0
while :; do
createCanvas
force=$(floatMultiplication $gravity $(floatDivision $angle $len))
angleA=$(floatMultiplication -1 $force)
angleV=$(floatAddition $angleA $angleV)
angle=$(floatAddition $angle $angleV)
angleV=$(floatMultiplication $angleV 0.99)
bobX=$(floatAddition $(floatMultiplication $len $(sine $angle)) $originX)
bobY=$(floatAddition $(floatMultiplication $len $(cosine $angle)) $originY)
drawLine $originX $originY $(floatToInt $bobX) $(floatToInt $bobY) '@'
yco+=($(floatToInt $bobX))
xco+=($(floatToInt $bobY))
coSize=$(($coSize + 1))
if [[ $coSize -ge $n ]]
then
xco=("${xco[@]:1}")
yco=("${yco[@]:1}")
coSize=$n
fi
for ((i=0;i<$coSize;i++)); do
if((i==0))
then
drawPointCustom ${xco[$i]} ${yco[$i]} ';'
elif((i==1))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '~'
elif((i==2))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '~'
elif((i==3))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '^'
elif((i==4))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '^'
elif((i==5))
then
drawPointCustom ${xco[$i]} ${yco[$i]} 'o'
elif((i==6))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '%'
elif((i==7))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '$'
elif((i==8))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '&'
elif((i==9))
then
drawPointCustom ${xco[$i]} ${yco[$i]} '@'
fi
done
drawCircle $(floatToInt $bobX) $(floatToInt $bobY) 3 'o'
drawCanvas
moveCursorToBegining
done