From 57e5f59dd1b5384f8399f002fb837d9e66468c0b Mon Sep 17 00:00:00 2001 From: Adam McDaniel Date: Tue, 17 Sep 2024 23:44:46 -0400 Subject: [PATCH] Added solar system demo to docs --- docs/sage/web/index.html | 33 ++++++++++++++++++--------------- docs/sage/web/web_bg.wasm | Bin 2428808 -> 2428824 bytes examples/web/index.html | 33 ++++++++++++++++++--------------- src/frontend/std_lib.sg | 8 ++++---- 4 files changed, 40 insertions(+), 34 deletions(-) diff --git a/docs/sage/web/index.html b/docs/sage/web/index.html index 01a5915d..add842fc 100644 --- a/docs/sage/web/index.html +++ b/docs/sage/web/index.html @@ -352,7 +352,6 @@ main();`); break; case "solar-system": - // Get current year, month, day in JS let today = new Date(); let year = today.getFullYear(); @@ -361,20 +360,25 @@ document.getElementById("input").value = `${year} ${month} ${day}`; source.setValue(`// Draw an *accurate* model of the solar system! -// Change the date in the box below the output +// Change the date in the input box (next to buttons below) // to see the positions of the planets on that date! + from std.time import Instant, Date; from std.physics import Point3D; from std.physics.astronomy import Planet, KeplerianElements; -extern fun eval(str: &mut Char, size: Int); - fun main() { - // Get the date from the user - let (mut year, mut month, mut day) = (0, 0, 0); - print("Enter year: "); input(&mut year); println(); - print("Enter month: "); input(&mut month); println(); - print("Enter day: "); input(&mut day); println(); + let mut year = 0; + let mut month = 0; + let mut day = 0; + print("Enter year: "); + input(&mut year); + println(); + print("Enter month: "); + input(&mut month); + println(); + print("Enter day: "); + input(&mut day); let d = Date.date(year, month, day); print("Performing calculations for date "); d.print(); @@ -393,32 +397,31 @@ ]; println("Mercury is white, Venus is green, Earth is blue, Mars is red."); let au_to_pixel_ratio = (WIDTH / 2 + HEIGHT / 2) / 2 * 0.8; - let radius_scale = 600; + let radius_scale = 700; for let mut i=0; i<4; i+=1; { let planet = Planet.PLANETS[i]; let pos = planet.position_on_date(d); let color = colors[i]; let x = pos.x * au_to_pixel_ratio + WIDTH / 2; let y = -pos.y * au_to_pixel_ratio + HEIGHT / 2; - let radius = radius_scale * m_to_au(planet.radius()) * au_to_pixel_ratio; + let radius = radius_scale * planet.radius() * au_to_pixel_ratio; planet.print(); - println(" is at ", pos, " (AU, heliocentric)."); + println(" is at ", pos, " (AU, heliocentric).", " ", planet.radius()); canvas.draw_circle(color, x as Int, y as Int, radius as Int); } // Draw the sun let sun_radius = 20 * m_to_au(6.96e8) * au_to_pixel_ratio; canvas.draw_circle(Color.YELLOW, WIDTH / 2, HEIGHT / 2, sun_radius as Int); - println("Hello, world!"); - - return (); } fun m_to_au(m: Float): Float { return m / 149597870700.0; } +extern fun eval(str: &mut Char, size: Int); + impl Float { fun abs(self): Float { if self < 0.0 { diff --git a/docs/sage/web/web_bg.wasm b/docs/sage/web/web_bg.wasm index 551d1fb577ab0fd692c5ebf6260b8f5e96313b81..2894e2861ce7276a09c287b81a76cb103a7bdeb3 100644 GIT binary patch delta 75006 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 S$e*ws1$}TQ`}o&l&(MDvsT;Wf delta 74905 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 diff --git a/examples/web/index.html b/examples/web/index.html index 01a5915d..add842fc 100644 --- a/examples/web/index.html +++ b/examples/web/index.html @@ -352,7 +352,6 @@ main();`); break; case "solar-system": - // Get current year, month, day in JS let today = new Date(); let year = today.getFullYear(); @@ -361,20 +360,25 @@ document.getElementById("input").value = `${year} ${month} ${day}`; source.setValue(`// Draw an *accurate* model of the solar system! -// Change the date in the box below the output +// Change the date in the input box (next to buttons below) // to see the positions of the planets on that date! + from std.time import Instant, Date; from std.physics import Point3D; from std.physics.astronomy import Planet, KeplerianElements; -extern fun eval(str: &mut Char, size: Int); - fun main() { - // Get the date from the user - let (mut year, mut month, mut day) = (0, 0, 0); - print("Enter year: "); input(&mut year); println(); - print("Enter month: "); input(&mut month); println(); - print("Enter day: "); input(&mut day); println(); + let mut year = 0; + let mut month = 0; + let mut day = 0; + print("Enter year: "); + input(&mut year); + println(); + print("Enter month: "); + input(&mut month); + println(); + print("Enter day: "); + input(&mut day); let d = Date.date(year, month, day); print("Performing calculations for date "); d.print(); @@ -393,32 +397,31 @@ ]; println("Mercury is white, Venus is green, Earth is blue, Mars is red."); let au_to_pixel_ratio = (WIDTH / 2 + HEIGHT / 2) / 2 * 0.8; - let radius_scale = 600; + let radius_scale = 700; for let mut i=0; i<4; i+=1; { let planet = Planet.PLANETS[i]; let pos = planet.position_on_date(d); let color = colors[i]; let x = pos.x * au_to_pixel_ratio + WIDTH / 2; let y = -pos.y * au_to_pixel_ratio + HEIGHT / 2; - let radius = radius_scale * m_to_au(planet.radius()) * au_to_pixel_ratio; + let radius = radius_scale * planet.radius() * au_to_pixel_ratio; planet.print(); - println(" is at ", pos, " (AU, heliocentric)."); + println(" is at ", pos, " (AU, heliocentric).", " ", planet.radius()); canvas.draw_circle(color, x as Int, y as Int, radius as Int); } // Draw the sun let sun_radius = 20 * m_to_au(6.96e8) * au_to_pixel_ratio; canvas.draw_circle(Color.YELLOW, WIDTH / 2, HEIGHT / 2, sun_radius as Int); - println("Hello, world!"); - - return (); } fun m_to_au(m: Float): Float { return m / 149597870700.0; } +extern fun eval(str: &mut Char, size: Int); + impl Float { fun abs(self): Float { if self < 0.0 { diff --git a/src/frontend/std_lib.sg b/src/frontend/std_lib.sg index 19cad37f..960df387 100644 --- a/src/frontend/std_lib.sg +++ b/src/frontend/std_lib.sg @@ -1429,16 +1429,16 @@ mod physics { // Orbital radius in AU fun orbital_radius(self): Float { - return Planet.ORBITAL_RADII_METERS[self.order_from_sun()]; + return Planet.ORBITAL_RADII_AU[self.order_from_sun()]; } fun orbital_period(self): Float { return Planet.ORBITAL_PERIODS[self.order_from_sun()]; } - /// Get the radius of the planet in meters. + /// Get the radius of the planet in AU. fun radius(self): Float { - match self { + (match self { of Mercury => 2439700.0, of Venus => 6051800.0, of Earth => 6371000.0, @@ -1447,7 +1447,7 @@ mod physics { of Saturn => 58232000.0, of Uranus => 25362000.0, of Neptune => 24622000.0 - } + }) / 149597870700.0 } // Get the keplerian elements associated with the