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 ke

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.

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 =

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
Archive
Label
Popular Posts
Popular Posts
Loading