Saturday, May 28, 2016
Wednesday, May 25, 2016
Bouncing Ball inside Sphere
from visual import *
from random import uniform
display(center=(0,2,0),background=(1,1,1), autoscale=False, range=4.5,
width=600, height=600, forward=(-.4,-.3,-1)) #arah kamera
distant_light(direction=(1,1,1), color=color.red)
Ball = sphere(radius=2, length=4, opacity=.3)
bola = sphere(color=color.green,radius=.2)
bola.y = 1
bola.x = -1
bola.z = 1
v = vector(2,1,0)
dt = 1./16
r = bola.pos
rc = Ball.radius
def pantul():
global r,v
if mag(r)>=rc:
r = 1.99*norm(r)
vp = (dot(v,norm(r)))*norm(r)
vr = v-vp
v = vr - vp
def proses():
global r,v
a = vector(0,0,0)
v += a*dt
r += v*dt
bola.pos = r
pantul()
while 1:
rate(37)
proses()
Tuesday, May 24, 2016
Bouncing inside Cylinder
from visual import *
from random import uniform
display(center=(0,2,0),background=(1,1,1), autoscale=False, range=4.5,
width=600, height=600, forward=(-.4,-.3,-1)) #arah kamera
distant_light(direction=(1,1,1), color=color.red)
silinder = cylinder(radius=2, length=4, opacity=.3)
silinder.rotate(angle=pi/2, axis=(0,0,1),origin=(0,0,0))
bola = sphere(color=color.green,radius=.2)
bola.y = 0
bola.x = 0
bola.z = 1
v = vector(2,0,0)
dt = 1./16
r = bola.pos
rc = silinder.radius
def pantul():
global r,v
if mag(r)>=rc:
r = 1.9*norm(r)
vp = (dot(v,norm(r)))*norm(r)
vr = v-vp
v = vr - vp
def proses():
global r,v
a = vector(0,0,0)
v += a*dt
r += v*dt
bola.pos = r
pantul()
while 1:
rate(7)
proses()
Saturday, May 21, 2016
Thursday, May 12, 2016
Bounce Over Spherical Surface
#code
from visual import * from random import uniform display(center=(0,2,0),background=(1,1,1), autoscale=False, range=7.5, width=600, height=600, forward=(-.4,-.3,-1)) #arah kamera distant_light(direction=(1,1,1), color=color.red) ball = sphere(radius=2, color=color.red, opacity = .5) r2 = ball.radius silinder = cylinder(radius=2, length=4, opacity=.3) silinder.rotate(angle=pi/2, axis=(0,0,1),origin=(0,0,0)) bola = sphere(color=color.green,radius=.2) bola.y = 3 bola.x = uniform(-1,1) bola.z = uniform(-1,1) v = vector(0,2,0) dt = 1./8. r = bola.pos def pantul(): global r,v print v if mag(r)<r2: print mag(r) arah = norm(r) dv = dot(v,arah) v -= dv*arah r = (r2+.2)*arah def proses(): global r,v a = vector(0,-1,0) v += a*dt r += v*dt bola.pos = r pantul() while 1: rate(11) proses()
Tuesday, May 10, 2016
N-Spring System
Using Visual Python
I like the result, :)
.
I like the result, :)
#code
from visual import *
n = 13
display(center=(n/2,0,0),background=(1,1,1), autoscale=False, range=(7),
width=600, height=600, forward=(-.4,-.3,-1)) #arah kamera
distant_light(direction=(1,1,1), color=color.orange)
dt = 1./8.
dx = []
k = []
m = []
l0 = []
l = []
v = []
x = []
for i in arange(n):
dx.append(.1)
k.append(1.)
m.append(1.)
l0.append(1.)
l.append(1.)
v.append(0.)
x.append(0.)
pegas = []
kotak = []
for i in arange(n):
spring = helix(pos=(0,0,0), axis=(5,0,0), radius=0.2, color=color.red, length=1.)
pegas.append(spring)
ko = box(pos=(0,0,0), width=.5, height=.5, length= .5, color= color.green)
kotak.append(ko)
box(pos=(-1,.64,0), width=n, height=2, length= 2, color=color.black)
box(pos=(n/2.,-.36,0), width=n, height=.2, length= n, color=color.white,opacity=.9)
#usikan
l[0] = 1.2
l[n-1] = .9
#posisi x
position = 0
for i in arange(n):
position +=l[i]
x[i] = position
kotak[i].x = x[i]
def updatePegas():
global l
for i in arange(n):
if i!=0:
pegas[i].x = x[i-1]
l[i] = x[i]-x[i-1]
else:
l[i] = x[i]
kotak[i].x = x[i]
pegas[i].length = l[i]
def proses():
for i in arange(n):
dx[i] = l[i]-l0[i]
f0 = -k[i]*dx[i]
if i<n-1:
dx[i+1] = l[i+1]-l0[i+1]
f1 = -k[i+1]*dx[i+1]
a = (f0-f1)/m[i]
else:
a = f0/m[i]
v[i] += a*dt
x[i] += v[i]*dt
updatePegas()
while 1:
rate (19)
proses()
Subscribe to:
Posts (Atom)
My sky is high, blue, bright and silent.
Nugroho's (almost like junk) blog
By: Nugroho Adi Pramono
323f
(5)
amp
(1)
android
(12)
apple
(7)
arduino
(18)
art
(1)
assembler
(21)
astina
(4)
ATTiny
(23)
blackberry
(4)
camera
(3)
canon
(2)
cerita
(2)
computer
(106)
crazyness
(11)
debian
(1)
delphi
(39)
diary
(286)
flash
(8)
fortran
(6)
freebsd
(6)
google apps script
(8)
guitar
(2)
HTML5
(10)
IFTTT
(7)
Instagram
(7)
internet
(12)
iOS
(5)
iPad
(6)
iPhone
(5)
java
(1)
javascript
(1)
keynote
(2)
LaTeX
(6)
lazarus
(1)
linux
(29)
lion
(15)
mac
(28)
macbook air
(8)
macbook pro
(3)
macOS
(1)
Math
(3)
mathematica
(1)
maverick
(6)
mazda
(4)
microcontroler
(35)
mountain lion
(2)
music
(37)
netbook
(1)
nugnux
(6)
os x
(36)
php
(1)
Physicist
(29)
Picture
(3)
programming
(189)
Python
(109)
S2
(13)
software
(7)
Soliloquy
(125)
Ubuntu
(5)
unix
(4)
Video
(8)
wayang
(3)
yosemite
(3)