Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pod jakim kątem padaja promienie słoneczne
Forum PHP.pl > Inne > Hydepark
hwao
Witam :-)

Dostałem jakze ambitne zadanie :-)

Mianowicie mam policzyc pod jakim kątem padaja promienie sloneczne (powiecmy o godzinie 12) w danym punkcjie ziemi (okreslonym N/S W/E).

Ktos moze zna jakies przydatne wzory, badz tez wie pod jakim haslem je szukac... :-) albo spotkal sie z podobna aplikacja (zeby nie byla zbytnio rozudowana ;-) )
pEbE
Poszukaj w manualu geografi tongue.gif

A tak serio trzeba odjac odleglosc gorowania od punktu, o 12 słońce goruje na 90 stopni wiec nie bedzie problemu
Kuziu
Góruje - jest w najwyższym punkcie podczas doby. Tylko w pewnych miejscach na świecie świeci pod kątem 90 stopni, w polsce nigdy.

~hwao: (powiecmy... DZ
dr_bonzo
Prosze poprawic te paskudne bledy ortograficzne -- inaczej topic zostanie zamkniety.
Wskazowka: kontem smile.gif

Co do kata:
To jeszcze zalezy od daty -- przeciez w zime, u nas w Polce, promienie padaja pod mniejszym niz w lato.
acztery
nie wiem czy to istotne ale rok przestępny trzeba brać pod uwagę
sztosz
Musisz wiedzieć nad jakim równoleżnikiem w danym dniu o danej godzinie, minucie etc będą padać promienie słoneczne pod kątem 90 stopni. Reszta to proste przekształcenia matematyczne, dodawanie stopni i minut w zalezności od daty...

Hmm... a może nie... a co z peryhelium i aphelium + inne odchylenia okresowe... wiesz co ta aplikacja będzie co najmniej trudna do zaprojektowania sad.gif
spenalzo
Pięknie go postraszyliście biggrin.gif
nospor
Panowie, wy piszecie nie na temat. Czy mam wszystkim warny walnąć za nabijanie postów? winksmiley.jpg
Cytat
pod jakim kontem padaja promienie sloneczne

Należy zacząt od tego, czy wogóle słonce ma konto. O jakim koncie mowimy? Bankowym? mailowym? Jesli chodzi o mailowy, to moze takie: slonce@wp.pl ? Ale to tez zalezy od polozenia geograficznego.
Tak więc drogi hwao sprecyzuj dokladnie o jakie konto ci chodzi. A moze mialeś na mysli ....kątem.... winksmiley.jpg

ps: mam nadzieje ze się nie gniewasz, a ze to hydepark to nie moglem sie powstrzymac smile.gif
revyag
ściąga 01
ściąga 02

smile.gif
hwao
Kod
program katpadania;

var
r:integer; {szerokosc geograficzna miejsca obeserwacji}

begin
     writeln( 'Podaj szerokosc geograniczna N: ');
     readln( r );

     Writeln( '1.' );
     Write( '22 czerwca, czyli pierwszy dzien lata: ' );
     {Poniewaz to jest zwrotnika raka(23) to odejmuje od rownika(90) zeby uzyskac kat padania w tym dniu}

     if r > 23 then
        writeln( round( 90-(r-23) ) );
        {jezeli jest nad rakiem}

     if r < 23 then
        writeln( round( 90-(23-r) ) );
        {jezeli jest midzy rakiem a zwrotnikiem}

     Writeln( '2.' );
     Write( '22grudnia, czyli pierwszy dzien zimy: ' );

     writeln( round( 90-(r+23) ) );
     {kat padania promieni 22 grudna]

     readln;

end.


Powstalo cos takiego winksmiley.jpg
Dziekuje za pomoc smile.gif
Teraz lekki tuning i bedzie juz lepsza wersja winksmiley.jpg

Dla fanow kolorowej skladni smile.gif
http://phpfi.com/111167
tes
Przecież tego typu zadania robiło się w Szkole Podstawowej smile.gif
Sam nie pamiętałem dokładnie jak się to robi, ale teraz można się pośmiać z niektórych pomysłów tongue.gif
hwao
Cytat(tes @ 2006-04-06 11:40:49)
Przecież tego typu zadania robiło się w Szkole Podstawowej smile.gif
Sam nie pamiętałem dokładnie jak się to robi, ale teraz można się pośmiać z niektórych pomysłów tongue.gif

Zadanie bylo dla kolezanki na informatyke wiec musialo byc "proste" na poczatku mysalem ze bede musial uwzglednic:
- godzine
- dni
ect smile.gif
Wtedy kod sie barrdzooo rozrasta
Jabol
pod jakim kątem - hehe - ale podejdziemy matematycznie!
założenia:
- kąt pochylenia kuli ziemskiej względem prostopadłej do linii pomiędzy środkiem ziemii a słońca to B
- przekrój ziemi jest okręgiem
- odległość ziemi od słońca to d
- średnica ziemi to r

równianie okręgu: y=sqrt(r^2-x^2)
załóżmy że połudik = 0* a bierzemy pod uwagę tylko równoleżnik. Nasz x w tym momencie to nic innego jak cos(równoleżnik).
Teraz algorytm:
- należy wyliczyć równanie prostej przechodzącej przez punkty: (0;d) oraz (x;sqrt(r^2-x^2)) poprzez y-y1=(y2-y1)/(x2-x1)(x-x1). Jej współczynnik kierunkowy (m dla postaci y=mx+n) to m1.
- dalej należy obliczyć wartość pierwszej pochodnej w punkcie x (=cos(równoleżnik)) jako m2. (pochodna to będzie ... y=(1/2)*2*x*1/sqrt(r^2-x^2)=x/(sqrt(r^2-x^2).)
- tan(A)=|(m2-m1)/(1+m1+m2)|.

Teraz załóżmy, że jest 22 czerwca albo 22 grudnia
jeżeli 22 grudnia to:
- jeżeli równoleżnik był południowy to dodajemy A do B
- jeżeli północny to odejmujemy A od B
jeżeli jest 22 czerwca to na odwrót

wynik ostatniej operacji to nasz kąt.

Aha, ważna rzecz. Jeżeli nasz równoleżnik wejściowy = 0* to należy nie wykonywać algorytmu (wysypie się) a jedynie przyjąć, że A = 90*.

Algorytm ten należy oczywiście dostosować do obsługiwania również innych dat oraz współżednych południkowych. Nie będzie to proste, ale powinno się udac na podstawie podanych założeń.


// ------

Ups - nie zauważyłem, że zadanie jest już rozwiązane.. cool.gif i to nawet ciutkę prościej dry.gif .
hwao
@Jabol : Twoja teoria mi sie bardziej podoba :-)

Poszedles do tego samego, tylko ze sam smile.gif pozatym tamte wzory sa bardziej uniwersale smile.gif jak bedzie "Hm. Upgrades" to pokaze :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.