Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from visual import*
- from visual.graph import*
- bolt_pos = vector(-.1, -1, 0) #position of bolt relative to rod center
- G = 6.67e-11
- rod_mass = 1244.491
- L = 10
- rod_radius = 0.05
- bites = 10 #number of dms you want
- bolt_mass = 0.5
- bolt_radius = 0.2
- M = 10
- #graphics
- vscale=.1
- bolt_object = sphere(pos=bolt_pos, radius=bolt_radius, color=color.blue)
- rod_object = cylinder(pos=(-L,0,0), axis=(2*L,0,0), radius=rod_radius, color=color.red)
- force_object = arrow(pos=bolt_pos, axis=(0,0,0), shaftwidth=0.1)
- #initials
- dx = (2*L)/bites
- dm = (rod_mass/(bites))
- #inital force to integrate from
- force = vector(0,0,0)
- #for m in range(-M,M): #comment out loop that drew all the arrows
- #bolt_pos = vector(2*m, 8, 0)
- initial_vel = vector(0.00001,0,-0.00001)
- #point = sphere(pos=bolt_pos, radius=0.2, color=color.magenta, make_trail=true)
- #force_object = arrow(pos=(bolt_pos), axis=(0,0,0), shaftwidth=0.15, color=color.cyan)
- momentum = initial_vel*bolt_mass
- bolt_object.pos = bolt_pos
- t = 0
- dt = 100
- #force = vector(0,0,0)
- while t < 200000:
- rate(1000000)
- t = t + dt
- force = vector(0,0,0)
- for n in range (0, bites):
- x = vector((-L + (dx/2) + (n*dx)), 0, 0)
- # print x
- r = bolt_object.pos - x
- dF = -G*((bolt_mass * dm)/(mag2(r))) * norm(r)
- force = force + dF
- momentum = momentum + force*dt
- bolt_object.pos = bolt_object.pos + (momentum/bolt_mass)*dt
- # force_object.pos = bolt_object.pos
- # force_object.axis = vscale * force/G *4
- print force
- #print momentum
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement