Ohjelma vertikaaliselle tasoaurinkokellolle

Kellon suunnittelua varten on PHP-ohjelma jota ohjataan JavaScriptillä. Ohjelmaa voi käyttää erilaisten vaihtoehtojen kokeiluun.

Ohjelma esittää aika-asteikon suoraan edestä katsottuna. Vertikaalisen tasoaurinkokellon aika-asteikko on pystysuorassa olevassa tasossa. Asteikon origo on suorakaiteen keskellä ja origossa on asteikkoa vasten kohtisuora varjosauva, joka siis kuvassa osoittaa kohti katsojaa. Asteikon x-akseli on vaakasuorassa, positiivinen oikealle. Asteikon y-akseli on pystysuorassa, positiivinen ylös.

Lomakkeella tehtävät valinnat näkyvät oheisesta kuvaruutukaapauksesta ja tässä ne ovat yhteenvedonomaisesti tekstinä.

Paikan latitudi        Aikajärjestelmä Vyöhyke    Asteikon leveys         Alt & az    0,00°
       longitudi                   Aurinkoaika            korkeus         δ min      11,47°
Normaalin suunta D  Tunnit alas/ylös/molempiin    Fontti 1/2/3/ 4         Vaalea     20,15°
Sauvan etäisyys a                                 grafiikka/koordinaatit  debug      23,44°

Valintojen merkitys

Paikan latitudi ... longitudi ; koordinaatit latitudi φ (maantieteellinen leveys) ja longitudi λ (maantieteellinen pituus) annetaan aurinkokellon sijainnin mukaan. Suomalaiset arvot φ = 60° ... 70°N ja λ = 20° ... 30°E ovat sallittuja. Oletuspaikka on Rauma. Asteen kymmenesosan tarkkuus riittää. Tarvittaessa desimaalierottimena piste, ei pilkkua.

Normaalin suunta D ; asteikon normaalin suunta D on se suunta johon pystysuoran asteikon normaali osoittaa horisontissa. D lasketaan etelästä myötäpäivään eli länteen päin. Arvo annetaan täysinä asteina välillä 0 ... 360°. Tämän mukaan esim. etelä on 0°, lounas 45°, länsi 90°, luode 135°, pohjoinen 180°, koillinen 225°, itä 270° ja kaakko 315°.

Varjosauvan etäisyys a ; etäisyydellä a (täysiä millimetrejä) tarkoitetaan asteikon origosta lähtevän, asteikkoa vasten kohtisuoran varjosauvan pituutta. Tämän kohtisuoran varjosauvan päähän luultavasti tulee polaarisauva. Mitta a siis samalla osoittaa myös polaarisauvan pään etäisyyden asteikosta.

Aikajärjestelmä ... ; voidaan valita joko paikallinen aurinkoaika (oletusarvo) tai vyöhykkeen aika. Vyöhykkeeksi voidaan valita esim. 30°E (oletus) tai 45°E.

Tunnit ; kumpaan aikaviivan päähän ("alas" tai "ylös") sitä vastaava tuntilukema merkitään, vai merkitäänkö tunti viivan molempiin päihin.

Asteikon leveys ... korkeus ; Suorakulmion muotoisen aika-asteikon mitat ilmoitetaan täysinä millimetreinä.

Fontti ; Fontin koko valitaan neljästä vaihtoehdosta 1 ... 4, joista oletusarvo on pienehkö 2. Tämä vaikuttaa kaikkeen kuvassa piirrettävään tekstiin.

grafiikka / koordinaatit ; Tulos voidaan esittää grafiikkana (oletusarvo) tai koordinaatteina.

Alt & az ; jos valitaan, piirtää ohjelma myös Auringon korkeuksia kuvaavat käyrät 5 asteen välein, sekä merkitsee horisonttiviivalle Auringon ilmansuunnat.

δ min ; Vaihtoehto "δ min" on oletuksena valittu. Tämä tarkoittaa sitä että asteikon aikaviivoja lasketaan ja piirretään myös Auringon minimideklinaation mukaan. Ohjelma laskee varjopisteet kolmelle Auringon deklinaatiolle: maksimideklinaatiolle δ = +23,44°, nolladeklinaatiolle δ = 0,00° ja minimideklinaatiolle δ = -23,44°.

Vaalea ; kuvan taustaväriksi voi vaihtoehtoisesti mustan asemesta valita vaalean värin.

debug ; esittää tarkistuksen vuoksi laskennassa käytetyt paikalliset tuntikulmat ja niiden Auringon kolmen deklinaation (asteikon mukaan leikkelemättömät) varjopisteiden koordinaatit joiden perusteella asteikon aikaviivat lasketaan.

δ-viiva ; Tässä valitaan minkä Auringon deklinaatioiden itseisarvojen mukaiset viivat asteikolle vedetään, jos mitään.

Tulostus

Varmuuden vuoksi kuva kertoo vasemmassa reunassa mille lähtöarvoille sen esittämä asteikko on laskettu. Lomakkellahan voi kontrollien arvoja muutella laskentaa ja piirtoa käynnistämättä, joten lomakkeella näkyvät tiedot sattavat olla erilaisia kuin kuvassa näkyvät.

Asteikolla esitetään havainnollisuuden vuoksi mittaruudukko 10 mm välein ja kirkkaammat viivat 100 mm välein.

Arvot D ja a vaikuttavat paljon aurinkokellon aika-asteikkoon. Mitä suurempi a, sitä harvempaan ja väljemmin asteikon aikaviivat sijoittuvat, mutta sitä vähemmän niitä asteikolle mahtuu. Asteikon mitat vaikuttavat luonnollisesti myös siihen mitä asteikolle mahtuu.

Grafiikassa aikaviivojen yhteyteen merkitään vihreällä tekstillä minkä tunnin viivasta on kyse.

Vertikaalisessa kellossa varjosauvan pään varjo ei koskaan nouse x-akselin yläpuolelle, eli toisin sanoen varjosauvan pään varjon y-koordinaatti on aina negatiivinen tai korkeintaan nolla, joten asteikkosuorakaiteen yläosa on siinä mielessä turha jos ajatellaan vain varjosauvan pään varjoa. Tuolle suorakaiteen yläosalle voisi kuitenkin halutessaan merkitä polaarisauvan "varren" heittämän varjon mukaisia aikaviivoja. Vaikka varjosauvan pään varjo onkin asteikon ulkopuolella, niin polaarisauvan jonkin kohdan varjo voi osua asteikolle, tapauksesta rippuen.

Normaalisti ohjelma esittää asteikon aikaviivat täysinä tunteina varjosauvan pään varjon mukaan, asteikon reunojen puitteissa. Asteikon laita-alueilla voi käydä niin että Auringon maksimideklinaation varjopiste jää asteikon ulkopuolelle vaikka Aurinko paistaa asteikkotasolle. Tällaisessa tapauksessa - jos asteikko ei suuntaudu suoraan itään tai suoraan länteen - ohjelma tutkii kulkeeko maksimideklinaation varjopisteen ja asteikon aikaviivojen keskipisteen kautta kulkeva viiva asteikon halki ja jos tällainen osa viivasta löytyy niin asteikolle vedetään tuo aikaviiva asteikon reunasta reunaan tai asteikon aikaviivojen keskipisteeseen jos se on asteikon rajojen sisällä.

Varjosauvan pään varjon mukaan vedetyt aikaviivat normaalisti alkavat x-akselilta tai Auringon minimideklinaation varjopisteestä ja suuntautuvat siitä alas tai alaviistoon kohti asteikon reunaa ja Auringon maksimideklinaation varjopistettä. Niitä ei piirretä x-akselin yläpuolelle. X-akselin yläpuolelle asteikon laidoille piirretyt ja ylöspäin, asteikon keskipisteeseen suuntautuvat aikaviivat ovat niitä em. tapauksia joissa Auringon maksimideklinaation varjopiste on asteikon ulkopuolella.

Jos kello ei suuntaudu suoraan itään tai länteen niin kuvan alaosassa on polaarisauvan tietoja. Asteikon aikaviivojen keskipiste on sama kuin polaarisauvan ja asteikkotason leikkauspiste. Sen koordinaatit ilmoitetaan ja myös polaarisauvan pituus.

Polaarisauvan projektio asteikolla esitetään paksulla musta-valkoisella viivalla jonka yksi pää on asteikon origon kohdalla. Polaarisauvan toinen pää on usein asteikon ulkopuolella jos varjosauva on pitkähkö. Vain asteikon kohdalle osuva osa polaarisauvan projektiosta esitetään. Toisen pään sijainnin voi päätellä kuvan alalaidassa ilmoitetuista koordinaateista.

Ohjelman toiminnasta

Ohjelma piirtää vertikaalisen tasoaurinkokellon aika-asteikon täysille tunneille. Aivan kaikkea se ei ehkä hallitse, mutta se on silti hyödyllinen kun on selvitettävä millaisia kellonaikoja tietyn kokoisella, tiettyyn suuntaan osoittavalla ja tietynpituisella varjosauvalla varustetulla asteikolla voi esittää.

Jos aikajärjestelmäksi valitaan paikallinen aurinkoaika niin kello käy oikein kaikilla longitudeilla ; Aurinko on kaikkialla etelässä tasan kello 12 paikallista aurinkoaikaa. Jos valitaan vyöhyke niin kello saadaan näyttämään likimääräistä virallista aikaa. Suomen kesäaika on vyöhykkeen 45°E mukainen ja vyöhykeaika ("talviaika") vyöhykkeen 30°E mukaan (30 astetta Greenwichistä itään, Itä-euroopan aika).

Jos kello tehdään näyttämään paikallista aurinkoaikaa, niin longitudilla λ ei ole merkitystä. Lomakkeella sillä täytyy kuitenkin olla luvallinen arvo.

Tässä ohjelmassa lähdetään yksinkertaisuuden vuoksi siitä että origo on keskellä asteikkoa. Asiakas saa toki itse päättää minkä mittaisen ja muotoisen omasta asteikostaan lopulta tekee. Ohjelma rajoittuu vain suorakaiteen esittämiseen ja näitä alustavia tietoja voi kukin soveltaa oman halunsa mukaan. Ohjelman suorakaide täytyy valita niin suureksi että oma erilainen asteikko mahtuu kokonaan sen sisään. Jos asiakkaan asteikko ei ole tällainen suorakaide, joutuu aikaviivoja kuitenkin piirtämään ohjelman esittämän suorakaiteen ja ohjelman käyttämän origon mukaan.

PHP-ohjelma piirtää palvelimella tiedot melko taloudelliseen png-tyyppiseen kuvaan jonka voi kopioida esim. kuvankäsittelyohjelmaan. Alkutilanteessa kuva esittää joitakin ohjeita. Jokaisella kutsulla piirretään uusi kuva.

Jos vertikaalisen kellon halutaan näyttävän aikaa aamulla, tulisi se suunnata etelästä jonkin verran itään päin. Jos halutaan kellon näyttävän aikaa illalla, olisi se suunnattava jonkin verran länteen päin.

Jos asteikon normaali osoittaa suoraan länteen tai itään niin (suoraa) polaarisauvaa ei voi kiinnittää asteikkotasoon koska ne eivät leikkaa toisiaan. Jos asteikon normaali suuntautuu etelän puolelle, niin polaarisauva kiinnitetään asteikon origon yläpuolelle. Jos asteikon normaali suuntautuu pohjoisen puolelle, niin polaarisauva kiinnitetään asteikon origon alapuolelle.

Jos Aurinko paistaa asteikkotasolle jonkin tunnin mukaisella tuntikulmalla Auringon maksimideklinaatiolla ja lisäksi myös nolladeklinaatiolla (tai ainakin paistaisi ellei horisontti olisi tiellä) niin näiden kahden varjopisteen välille voidaan asteikolle vetää viiva. Jos kuitenkin "δ min" on valittuna ja ohjelma voi todeta että Aurinko edellisten lisäksi paistaa asteikolle myös minimideklinaatiolla (unohdetaan horisontti hetkeksi) ja Aurinko oli horisontin yläpuolella nolladeklinaatiolla, niin ohjelma vetääkin tuon aikaviivan minimideklinaation varjopisteeseen saakka. Tokihan nuo aikaviivat täytyy sitten myöhemmin leikellä asteikon mittojen mukaan ja horisonttikin tulee tässä yhteydessä mukavasti huomioitua sikäli että vertikaalisessa kellossa sauvan pään varjon positiiviset y-koordinaatit ovat mahdottomia eli aikaviivat voidaan leikellä x-akseliin saakka.

Jos nimenomaan halutaan vetää aikaviivat ainoastaan Auringon maksimideklinaation ja deklinaation nolla varjopisteiden välille, niin kohta "δ min" jätetään valitsematta. Sillä luultavasti ei ole ohjelman toimintaan ratkaisvaa vaikutusta.

Huomautus suunnista

Vertikaalisen tasoaurinkokellon asteikon normaalin suunta D annetaan siis etelästä myötäpäivään 0 ... 360°.

Jos valintaruutu "Alt & az" on valittuna niin asteikon horisonttiviivalle merkitään ilmansuuntia. Nämä ovat Auringon suunnalle silloin kun varjo on ko. kohdalla ja ne ilmoitetaan pohjoisesta myötäpäivään 0 ... 360° kuten mm. merenkulussa on tapana.

Kompassisuunnat ovat pohjoisesta myötäpäivään.

Suunnan nimitys         Lyhenne
---------------         -------
North                   N         0.00°
North by east           NbE      11.25°
North-northeast         NNE      22.50°
Northeast by north      NEbN     33.75°
Northeast               NE       45.00°
Northeast by east       NEbE     56.25°
East-northeast          ENE      67.50°
East by north           EbN      78.75° 
East                    E        90.00° 
East by south           EbS     101.25° 
East-southeast          ESE     112.50°
Southeast by east       SEbE    123.75°
Southeast               SE      135.00°
Southeast by south      SEbS    146.25°
South-southeast         SSE     157.50°
South by east           SbE     168.75°
South                   S       180.00°
South by west           SbW     191.25°
South-southwest         SSW     202.50°
Southwest by south      SWbS    213.75°
Southwest               SW      225.00°
Southwest by west       SWbW    236.25°
West-southwest          WSW     247.50°
West by south           WbS     258.75°
West                    W       270.00°
West by north           WbN     281.25°
West-northwest          WNW     292.50°
Northwest by west       NWbW    303.75°
Northwest               NW      315.00°
Northwest by north      NWbN    326.25°
North-northwest         NNW     337.50°
North by west           NbW     348.75° 

Tasoaurinkokello
PÄÄSIVU