[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@13.58.232.94: ~ $
#! /usr/bin/env python
"""       turtle-example-suite:

        tdemo_planets_and_moon.py

Gravitational system simulation using the
approximation method from Feynman-lectures,
p.9-8, using turtlegraphics.

Example: heavy central body, light planet,
very light moon!
Planet has a circular orbit, moon a stable
orbit around the planet.

You can hold the movement temporarily by pressing
the left mouse button with mouse over the
scrollbar of the canvas.

"""
from turtle import Shape, Turtle, mainloop, Vec2D as Vec
from time import sleep

G = 8

class GravSys(object):
    def __init__(self):
        self.planets = []
        self.t = 0
        self.dt = 0.01
    def init(self):
        for p in self.planets:
            p.init()
    def start(self):
        for i in range(10000):
            self.t += self.dt
            for p in self.planets:
                p.step()

class Star(Turtle):
    def __init__(self, m, x, v, gravSys, shape):
        Turtle.__init__(self, shape=shape)
        self.penup()
        self.m = m
        self.setpos(x)
        self.v = v
        gravSys.planets.append(self)
        self.gravSys = gravSys
        self.resizemode("user")
        self.pendown()
    def init(self):
        dt = self.gravSys.dt
        self.a = self.acc()
        self.v = self.v + 0.5*dt*self.a
    def acc(self):
        a = Vec(0,0)
        for planet in self.gravSys.planets:
            if planet != self:
                v = planet.pos()-self.pos()
                a += (G*planet.m/abs(v)**3)*v
        return a
    def step(self):
        dt = self.gravSys.dt
        self.setpos(self.pos() + dt*self.v)
        if self.gravSys.planets.index(self) != 0:
            self.setheading(self.towards(self.gravSys.planets[0]))
        self.a = self.acc()
        self.v = self.v + dt*self.a

## create compound yellow/blue turtleshape for planets

def main():
    s = Turtle()
    s.reset()
    s.tracer(0,0)
    s.ht()
    s.pu()
    s.fd(6)
    s.lt(90)
    s.begin_poly()
    s.circle(6, 180)
    s.end_poly()
    m1 = s.get_poly()
    s.begin_poly()
    s.circle(6,180)
    s.end_poly()
    m2 = s.get_poly()

    planetshape = Shape("compound")
    planetshape.addcomponent(m1,"orange")
    planetshape.addcomponent(m2,"blue")
    s.getscreen().register_shape("planet", planetshape)
    s.tracer(1,0)

    ## setup gravitational system
    gs = GravSys()
    sun = Star(1000000, Vec(0,0), Vec(0,-2.5), gs, "circle")
    sun.color("yellow")
    sun.shapesize(1.8)
    sun.pu()
    earth = Star(12500, Vec(210,0), Vec(0,195), gs, "planet")
    earth.pencolor("green")
    earth.shapesize(0.8)
    moon = Star(1, Vec(220,0), Vec(0,295), gs, "planet")
    moon.pencolor("blue")
    moon.shapesize(0.5)
    gs.init()
    gs.start()
    return "Done!"

if __name__ == '__main__':
    msg = main()
    print msg
    mainloop()

Filemanager

Name Type Size Permission Actions
.tdemo_I_dontlike_tiltdemo.pyo.40009 File 1.62 KB 0644
.tdemo_bytedesign.pyo.40009 File 5.19 KB 0644
.tdemo_chaos.pyo.40009 File 2.24 KB 0644
.tdemo_clock.pyo.40009 File 4.38 KB 0644
.tdemo_colormixer.pyo.40009 File 2.31 KB 0644
.tdemo_fractalcurves.pyo.40009 File 3.44 KB 0644
.tdemo_lindenmayer_indian.pyo.40009 File 3.52 KB 0644
.tdemo_minimal_hanoi.pyo.40009 File 3.5 KB 0644
.tdemo_nim.pyo.40009 File 9.16 KB 0644
.tdemo_paint.pyo.40009 File 1.7 KB 0644
.tdemo_peace.pyo.40009 File 1.41 KB 0644
.tdemo_penrose.pyo.40009 File 5.86 KB 0644
.tdemo_planet_and_moon.pyo.40009 File 4.44 KB 0644
.tdemo_tree.pyo.40009 File 2.07 KB 0644
.tdemo_wikipedia.pyo.40009 File 1.91 KB 0644
.tdemo_yinyang.pyo.40009 File 1.29 KB 0644
.turtleDemo.pyo.40009 File 9.97 KB 0644
.turtledemo_two_canvases.pyo.40009 File 1.22 KB 0644
about_turtle.txt File 3.44 KB 0644
about_turtledemo.txt File 302 B 0644
demohelp.txt File 2.38 KB 0644
tdemo_I_dontlike_tiltdemo.py File 1.05 KB 0644
tdemo_I_dontlike_tiltdemo.pyc File 1.62 KB 0644
tdemo_I_dontlike_tiltdemo.pyo File 1.62 KB 0644
tdemo_bytedesign.py File 4.12 KB 0644
tdemo_bytedesign.pyc File 5.19 KB 0644
tdemo_bytedesign.pyo File 5.19 KB 0644
tdemo_chaos.py File 953 B 0644
tdemo_chaos.pyc File 2.24 KB 0644
tdemo_chaos.pyo File 2.24 KB 0644
tdemo_clock.py File 2.95 KB 0644
tdemo_clock.pyc File 4.38 KB 0644
tdemo_clock.pyo File 4.38 KB 0644
tdemo_colormixer.py File 1.31 KB 0644
tdemo_colormixer.pyc File 2.31 KB 0644
tdemo_colormixer.pyo File 2.31 KB 0644
tdemo_fractalcurves.py File 3.33 KB 0644
tdemo_fractalcurves.pyc File 3.44 KB 0644
tdemo_fractalcurves.pyo File 3.44 KB 0644
tdemo_lindenmayer_indian.py File 2.38 KB 0644
tdemo_lindenmayer_indian.pyc File 3.52 KB 0644
tdemo_lindenmayer_indian.pyo File 3.52 KB 0644
tdemo_minimal_hanoi.py File 1.92 KB 0644
tdemo_minimal_hanoi.pyc File 3.5 KB 0644
tdemo_minimal_hanoi.pyo File 3.5 KB 0644
tdemo_nim.py File 6.43 KB 0644
tdemo_nim.pyc File 9.16 KB 0644
tdemo_nim.pyo File 9.16 KB 0644
tdemo_paint.py File 1.1 KB 0644
tdemo_paint.pyc File 1.7 KB 0644
tdemo_paint.pyo File 1.7 KB 0644
tdemo_peace.py File 1.09 KB 0644
tdemo_peace.pyc File 1.41 KB 0644
tdemo_peace.pyo File 1.41 KB 0644
tdemo_penrose.py File 3.45 KB 0644
tdemo_penrose.pyc File 5.86 KB 0644
tdemo_penrose.pyo File 5.86 KB 0644
tdemo_planet_and_moon.py File 2.77 KB 0644
tdemo_planet_and_moon.pyc File 4.44 KB 0644
tdemo_planet_and_moon.pyo File 4.44 KB 0644
tdemo_tree.py File 1.38 KB 0644
tdemo_tree.pyc File 2.07 KB 0644
tdemo_tree.pyo File 2.07 KB 0644
tdemo_wikipedia.py File 1.32 KB 0644
tdemo_wikipedia.pyc File 1.91 KB 0644
tdemo_wikipedia.pyo File 1.91 KB 0644
tdemo_yinyang.py File 808 B 0644
tdemo_yinyang.pyc File 1.29 KB 0644
tdemo_yinyang.pyo File 1.29 KB 0644
turtle.cfg File 160 B 0644
turtleDemo.py File 9.94 KB 0644
turtleDemo.pyc File 9.97 KB 0644
turtleDemo.pyo File 9.97 KB 0644
turtledemo_two_canvases.py File 885 B 0644
turtledemo_two_canvases.pyc File 1.22 KB 0644
turtledemo_two_canvases.pyo File 1.22 KB 0644