User Tools

Site Tools


folkarc:orbitalkit

This is an old revision of the document!


ORBITALKIT

Current issues:

  • The speed which the actual circle orbits rotate at are really off

Source

# ORBITALKIT - CC0 2023 Arcade Wise
# Create a planet using "Claim $this is Earth"
# Create a satellite using "Claim $this is a satellite"
 
 
proc orbitalVelocityAroundEarth {radius} {
    set EarthMass [expr {5.972168 * (10 ** 18)}]
    set G [expr {6.67430 * (10.0 ** (-11.0))}]
 
    return [expr {sqrt(($G * $EarthMass) / $radius)}]
} 
 
 
When /someone/ claims /earth_page/ is Earth {
    When $earth_page has region /earth/ {
        # Draw a little earth :>
        lassign [region centroid $earth] x_earth y_earth
        Display::circle $x_earth $y_earth 100 5 green
 
        Wish $earth_page is labelled Earth
 
        When /someone/ claims /sat_page/ is a satellite  { 
            When $sat_page has region /sat/ & the clock time is /t/ & /sat/ has tag /tag/ {
                set radius [vec2 distance [region centroid $earth] [region centroid $sat]]
                
                # Display the orbit circle
                Display::circle $x_earth $y_earth $radius 5 darkblue
 
                set speed [orbitalVelocityAroundEarth [expr {$radius * 1000}]]
            
                # Calculate postion for sattelite
                set angle [expr {(round(($t * 200 + ($tag * 100))) % 2000) / 2000.0}]
                set x [expr {($radius * sin(6.283 * $angle )) + $x_earth}]
                set y [expr {($radius * cos(6.283 * $angle )) + $y_earth}]

                # display the stroke 
                Display::stroke [list [region centroid $earth] [list $x $y]] 1 red
 
 
                Display::circle $x $y 20 5 white true
                Display::text $x [expr {$y - 40 }] 1 "[expr {round($speed)}]km/s at [expr {int($radius) * 1000}]km from Earth" [region angle $earth]
            }
        }
    }
}
 
When tag /tag/ has corners /corners/ & /tag/ has region /region/ {
  Claim $region has tag $tag
}
folkarc/orbitalkit.1696464387.txt.gz · Last modified: 2023/10/05 00:06 by discord

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki