404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.147.82.108: ~ $
#! /usr/bin/python2.7
"""       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 the
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__':
    main()
    mainloop()

Filemanager

Name Type Size Permission Actions
about_turtle.txt File 3.44 KB 0644
about_turtledemo.txt File 302 B 0644
demohelp.txt File 2.96 KB 0644
tdemo_I_dontlike_tiltdemo.py File 1.05 KB 0755
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 0755
tdemo_bytedesign.pyc File 5.19 KB 0644
tdemo_bytedesign.pyo File 5.19 KB 0644
tdemo_chaos.py File 951 B 0644
tdemo_chaos.pyc File 2.24 KB 0644
tdemo_chaos.pyo File 2.24 KB 0644
tdemo_clock.py File 3.14 KB 0755
tdemo_clock.pyc File 4.43 KB 0644
tdemo_clock.pyo File 4.43 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 0755
tdemo_fractalcurves.pyc File 3.44 KB 0644
tdemo_fractalcurves.pyo File 3.44 KB 0644
tdemo_lindenmayer_indian.py File 2.38 KB 0755
tdemo_lindenmayer_indian.pyc File 3.52 KB 0644
tdemo_lindenmayer_indian.pyo File 3.52 KB 0644
tdemo_minimal_hanoi.py File 2 KB 0755
tdemo_minimal_hanoi.pyc File 3.54 KB 0644
tdemo_minimal_hanoi.pyo File 3.54 KB 0644
tdemo_nim.py File 6.36 KB 0644
tdemo_nim.pyc File 9.16 KB 0644
tdemo_nim.pyo File 9.16 KB 0644
tdemo_paint.py File 1.26 KB 0755
tdemo_paint.pyc File 1.86 KB 0644
tdemo_paint.pyo File 1.86 KB 0644
tdemo_peace.py File 1.04 KB 0755
tdemo_peace.pyc File 1.36 KB 0644
tdemo_peace.pyo File 1.36 KB 0644
tdemo_penrose.py File 3.45 KB 0755
tdemo_penrose.pyc File 5.86 KB 0644
tdemo_penrose.pyo File 5.86 KB 0644
tdemo_planet_and_moon.py File 2.76 KB 0755
tdemo_planet_and_moon.pyc File 4.43 KB 0644
tdemo_planet_and_moon.pyo File 4.43 KB 0644
tdemo_tree.py File 1.38 KB 0755
tdemo_tree.pyc File 2.07 KB 0644
tdemo_tree.pyo File 2.07 KB 0644
tdemo_two_canvases.py File 1.09 KB 0644
tdemo_two_canvases.pyc File 1.6 KB 0644
tdemo_two_canvases.pyo File 1.6 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 807 B 0755
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.85 KB 0755
turtleDemo.pyc File 10.69 KB 0644
turtleDemo.pyo File 10.69 KB 0644