Schijngestalte van de Maan II: Tekening met JavaScript

Weerberichten zijn heel populair op internet. Dat is op zich niet vreemd, want westerlingen praten heel veel over het weer. Websites waarop weerberichten staan worden vaak "aangekleed" met andere zaken die met weer te maken hebben, zoals een plaatje van de stand van de maan. Deze website is daarop geen uitzondering. Hieronder zie je een voorbeeld van hoe dat er uit zou kunnen zien.

Het bijzondere van dit plaatje is dat het helemaal is getekend met behulp van JavaScript.
Het oorspronkelijke idee voor deze aanpak is van James Thiele, die daarvoor een script op zijn website heeft gezet. Ik heb de kleuren aangepast (was zwart en wit) en het rekengedeelte vervangen door een (nauwkeuriger) script van Tim Poulsen. Daarbij heb ik het gemakkelijker gemaakt om het script in te bouwen in een website. Ook heb ik er wat eigen ontwikkelingen aan toegevoegd.
De sites van Thiele en Poulsen zijn helaas verdwenen.
In 2020 heb ik het JavaScript aangepast, de HTML herschreven en CSS toegevoegd, om het te laten werken in de moderne browsers.

Hier wordt beschreven hoe je dit kunt aanpakken.
De code staat onderaan de pagina. Je kunt hem ook downloaden om zelf te gebruiken.

Elders op deze site wordt een vergelijkbaar script geschreven dat werkt met "echte" plaatjes. Zie het item "Schijngestalte van de Maan".

Opmerking:
 
De maan-cyclus is 29,530589 dagen. Deze is echter niet constant maar varieert een beetje. Daardoor ontstaan onnauwkeurigheden in de resultaten van dit script, die worden versterkt door de noodzaak om in de berekening getallen af te ronden. De afwijkingen worden groter als de systeemklok van je PC niet helemaal op tijd loopt.
Een en ander zorgt er voor dat de meldingen over -bijvoorbeeld- het percentage van de maan dat verlicht is kunnen afwijken van de werkelijkheid. Ook kan de figuur net even iets anders weergeven dan je op grond van de meldingen zou veronderstellen.
De afwijking kan oplopen tot maximaal één etmaal. Als de afwijking structureel fout gaat moet je de variabele baseDate in regel 18 van maanstand.js veranderen naar een recentere datum en tijd.

Gebruik:

De code ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<style>
.moonClass {
  float: right;
  margin-left: 20px;
  padding: 10px;
  border-collapse: collapse;
}
.moonCell {
  text-align :center;
  padding: 0;
  font-size: 0;
  line-height: 0;
}
.wrapper {
  padding: 10px;
  border: 1px solid navy;
  width: 100%;
}
</style>
 
<script src="maanstand.js"></script>

(Zet in in de BODY op de plaats waar je het nodig hebt)

<table class="wrapper"><tr>
  <td class="Opmerk-g" style="width:70%"><script>showMessages()</script></td>
  <td style="width:30%"><script>showMoon('35')</script></td>
</tr></table>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb173.zip, 2339 bytes.

 
terug

html-173; Laatste wijziging: 19 juli 2020