Nugroho's blog.

Thursday, June 2, 2016

Collision.





 Here's the Code
#code
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 = []
n = 5
for i in arange (n):
bola = sphere(color=color.green,radius=uniform(.2,.73))
bola.pos = vector(uniform(-1.5,1.5),uniform(-1.5,1.5),uniform(-1.5,1.5))
bola.v = vector(uniform(-1,1),uniform(-1,1),uniform(-1,1))
Bola.append(bola)

dt = 1./16

def pantul():
global Bola
for bola in Bola:
r = bola.pos
v = bola.v
if mag(r)>=Ball.radius:
r = 1.9*norm(r)
vp = (dot(v,norm(r)))*norm(r)
vr = v-vp
v = vr - vp
bola.r = r
bola.v = v
for i in arange (n-1):
for j in range(i+1, n):
ri = Bola[i].pos
rj = Bola[j].pos
vi = Bola[i].v
vj = Bola[j].v
rc = rj-ri
if Bola[i].radius+Bola[j].radius>mag(rc):
vpi = dot(vi,norm(rc))*norm(rc)
vri = vi-vpi
vpj = -dot(vj,norm(rc))*norm(rc)
vrj = vj-vpj

vi = vpj+vri
vj = vpi+vrj

Bola[i].v = vi
Bola[i].v = vj

def proses():
for bola in Bola:
r = bola.pos
v = bola.v
a = vector(0,0,0)
v += a*dt
r += v*dt

bola.pos = r

pantul()

while 1:
rate(37)
proses()

.

Wednesday, June 1, 2016

Jaket Norak Kuning Menyala.


 Banyak fungsinya.

 Tidak dingin saat ngampus pagi-pagi

 Atau saat pulang dari kampus malam-malam

 Bisa berfungsi sebagai jas hujan karena anti air. Tapi percuma juga karena celana juga tetap basah.  Fungsi jaket norak kuning ini adalah melindungi tubuh bagian atas. Celanaku tidak kugunakan di tubuh bagian atas, jadi tetap basah.

 Agak mendingan untuk jalan ke parkiran saat hujan. Ada hoodie-nya.

 Yang paling penting, dengan memakai jaket norak kuning menyala secara konsisten setiap hari, satpam penjaga gerbang jadi hafal dan tak perlu menunjukkan STNK untuk keluar kampus.

 Sepertinya mereka berpikir hanya satu orang di kampus ini yang berani memakai jaket model gitu. Dan karena maling pun males mencuri jaket gituan, maka yang melintas tiap hari dengan jaket yang warnanya bikin sakit mata itu pasti hanya satu orang yang sama.

 :)



 #Naya
 #edisiError

The Trials of Apollo: The Hidden Oracle


 “Percy waved vaguely toward the north. “She’s in Boston for a few weeks. Some family emergency. The point is—”

 Excerpt From: Rick Riordan. “The Hidden Oracle.”

 So, the timeline is about the same time as Magnus Chase  The Sword of Summer

 Rick is very busy this last year, :)

Sunday, May 29, 2016

Bouncing Ball inside a Cone


  I use vector projection and rejection to calculate velocity after bouncing the side of cone, :)





#code
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)

Cone = cone(pos = (0,0,0), axis=(0,5,0), radius = 3, opacity = .2)


bola = sphere(color=color.green,radius=.2)
bola.y = 1
bola.x = -1
bola.z = 1

v = vector(1,-1,0)
dt = 1./16
r = bola.pos
rc = Cone.radius
h = vector(Cone.axis)

def pantul():
global r,v
#tumbukan dengan lantai
if r.y<0:
r.y = 0
v.y *= -1

rp = vector(r.x,0,r.z)
hb = h.y - r.y
rmaks = hb/h.y*rc
c = h-rmaks*norm(rp) #vektor garis singgung
#selimut kerucut dengan bidang singgung
#tumbukan dengan selimut kerucut
if mag(rp)>rmaks:
rp = norm(rp)*rmaks
r = vector(rp.x,r.y,rp.z)
vp = dot(v,norm(c))*norm(c)
v = 2*vp-v
print v



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()

.

Daun Jatuh.

 Megatruh: Apa-apaan ini Kin?

 Kinanthi: Apanya yang apa-apaan Meg?

 M: Puisimu ini?

 K: Kamu baca puisiku? Wow, horee..., aku punya tambahan penggemar

 M: Puisinya bagus...

 
 K: ...dari nol penggemar menjadi satu pengemar...

 M: ...tapi tak logis.

 K: ...dan semua penggemarku, yang cuma satu itu, bilang bagus.

 M: Yeah, tapi gak logis.

 K: Gakpapa, yang penting ada bagus-nya.

 M: Masak disini kamu tulis Daun jatuh tak membenci angin.  Lha jelas daun yang jatuh gara-gara angin itu kan daun tua yang kering, tentu saja pasrah saja dia tertiup angin.

 K: Puisi kan gak perlu logis to Meg.

 M: Ini bukan puisi penambah semangat.

 K: Memang bukan. Puisiku yang ini tentang pasrah setelah berusaha.

 M: Lha kalau gambarannya daun jatuh karena angin, berarti pasrah sampai tua dong.

 K: Eh, iya juga.

 M: Harusnya bikin yang menambah semangat atau tahan banting atau bertahan semacam Daun yang kuat takkan jatuh sekalipun badai.

 K: Wah, trims Meg, ide bagus buat bahan puisi baruku

 M: ... 

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()


.


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)