Sonnenscheindauer ...

… maximal mögliche > Icon für den Designer.
Wer hat Zeit und Lust und mag so ein Icon programmieren?
Eingabe: Längen und Breitengrad
Siehe auch hier
… oder auch:

$sunset = strtotime(date("Y-m-d ").date_sunset(time(), SUNFUNCS_RET_STRING, -54, 10, 90, 1));
echo date("d.m.y H:i", $sunset)."
";
$sunrise = strtotime(date("Y-m-d ").date_sunrise(time(), SUNFUNCS_RET_STRING, -54, 10, 90, 1));
echo date("d.m.y H:i", $sunrise);

MST

PS: ich habe mal ein Beispiel aus einer Zeitung gerissen. So oder so ähnlich (ohne den Text nur Kurve mit Zeit in Std.) sollte das Icon aussehen …

Okay… ich hab geschummelt, weils nicht PHP iss… :rolleyes:

Sonnenschein.jpg

… muss nicht unbedingt PHP sein - von mir aus kann der Code auch mit dem „BASIC Bär“ generiert sein.
Nur: keine Konserve, sondern: maximal mögliche Sonnenscheindauer in Stunden von heute als 48*48 Icon …

MST

Okay… zu gegebenem Anlass möchte ich auch noch schnell ne „Sneak Preview“ für Paragraph 2.0 verteilen… Ist aber noch einiges an Arbeit drin… Die Idee dafür stammt übrigens vom IPS-Together 2008 ( Fotos Unten im Link) :wink:

Gruß,

Toni

1.png

2.png

Dynamisch ist klar… hab nur irgendwelche Werte genommen grad… weil unten JFMAMJJASOND drunter stand…

In PHP bin ich absolut nicht fit und hab auch nicht wirklich Zeit mich da reinzuarbeiten. Wofür soll es denn sein? :confused:

Toni

… ja nee - schön - war bestimmt ein toller Sommer 1963 - ich möchte aber für heute 14,5 Stunden sowie einen kleinen Punkt auf der Kurve angezeigt bekommen …

MST

Wofür soll es denn sein? > für den Designer

Das heisst du brauchst eine Kurve, die auf tägliche Sonnenscheinstunden umgerechnet ist und eine Vertikale Linie hür „heute“… Hast du irgendwelche Daten, die du als Grundlage verwendet haben willst? Irgendwo muss man ja das „Rohmaterial“ dafür her bekommen…

Wovon der Paragraph eine Kurve zeichnet ist ihm egal. Er macht halt aus ner Textdatei ein JPG. Mit IPS ne Textdatei zu erstellen sollte nicht das Problem sein… Das mit der Vertikalen Linie (oder Punkt, Komma, wasweissich) ließe sich dann sicherlich noch irgendwie in den Quellcode „reinschummeln“

… in der Zeit hätte ich es selber programmiert …

Rohmaterial: $sunset = strtotime(date("Y-m-d ").date_sunset(time(), SUNFUNCS_RET_STRING, -54, 10, 90, 1));

Jetzt verstehe ich erst was du willst…:smiley:

... in der Zeit hätte ich es selber programmiert ...

und das sollst du auch… Ich heng dir mal die aktuelle Version dran. Wenn du das Teil für geeignet hälst, bau ich dir deinen Punkt ein und fummel noch an der unteren Skala rum (wegen der Optik). Sonst kann ich mir die Mühe sparen.

Einfach ein Script tippen, dass deine „Rohdaten“ in eine Textdatei speichert und abfeuern. Der Zeitaufwand dürfte für nen PHP-Progger nur einige Minuten betragen. Hab dir das Beispielprojekt -Sonnenscheindauer- mit eingepackt. Die arbeitsweise ist hier erklärt. Eine kleine Hilfedatei ist im dortigen Download enthalten. Weitere Fragen direkt an mich.

Toni

ParaGraph.zip (262 KB)

Hallo,

da kann er aber auch gleich sein WIIPS nehmen…

Beim folgenden Skript muss lediglich: $lat & $lon auf die eigene Position geändert werden.

MST

$breite = 48;     	// Pixel
$hoehe = 48;      	// Pixel
$zeiger = 48;        // Pixel
$lat = 54;           // Breite - GEO
$lon = 10;           // Länge - GEO
$tage = 365;

$sunset = date_sunset(mktime(0, 0, 0, 12, 21, 2008), SUNFUNCS_RET_TIMESTAMP, $lat, $lon, 90, 2);
$sunrise = date_sunrise(mktime(0, 0, 0, 12, 21, 2008), SUNFUNCS_RET_TIMESTAMP, $lat, $lon, 90, 2);
$min = ($sunset - $sunrise)/3600;

$sunset = date_sunset(mktime(0, 0, 0, 6, 21, 2008), SUNFUNCS_RET_TIMESTAMP, $lat, $lon, 90, 2);
$sunrise = date_sunrise(mktime(0, 0, 0, 6, 21, 2008), SUNFUNCS_RET_TIMESTAMP, $lat, $lon, 90, 2);
$max = ($sunset - $sunrise)/3600;
$sunset = date_sunset(time(), SUNFUNCS_RET_TIMESTAMP, $lat, 10, 90, 2);
$sunrise = date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP, $lat, 10, 90, 2);
$dauer = ($sunset - $sunrise)/3600;

$month =  date("m") + 0;
$lfd_tag = date("z") + 9;  

$im=imagecreate($breite,$hoehe);
$white=imagecolorallocate($im,255,255,255);
imagecolortransparent($im,$white); // Making Image Transparent
$lightblue=imagecolorallocate($im,20,93,233);
$black=imagecolorallocate($im,0,0,0);
$white=imagecolorallocate($im,255,255,255);
$blue=imagecolorallocate($im,128,55,225);
$grau_gruen=imagecolorallocate($im,0,128,128);
$yellow=imagecolorallocate($im,255,255,0);
$rgb_red=imagecolorallocate($im,255,0,0);
$rgb_gruen=imagecolorallocate($im,0,255,0);
$rgb_blau=imagecolorallocate($im,0,0,255);

$fakt = $tage / ($max-$min); 
$gr_f = $tage / $breite;
for($x=0; $x< $tage; $x = $x + 0.1) {
	$x2 = $x / $gr_f;
	$sunset = date_sunset(1229814000 + ($x * 3600 * 24), SUNFUNCS_RET_TIMESTAMP, $lat, $lon, 90, 2);
	$sunrise = date_sunrise(1229814000 +($x * 3600 * 24), SUNFUNCS_RET_TIMESTAMP, $lat, $lon, 90, 2);
	$y2 = ($sunset - $sunrise)/3600;
	$y2 = $y2 - $min;
	$y2 = $y2 * $fakt / $gr_f;
	$y2 = ($y2*-1)+$hoehe;	
   imageline  ($im, $breite/2, $hoehe, $x2, $y2+($hoehe-$zeiger), $lightblue);
}

ImageString ($im, 2, 8, 36, number_format($dauer, 1, ".", "." ) . " h", $yellow);
	$x2 = $lfd_tag / $gr_f;
	$y2 = $dauer;
	$y2 = $y2 - $min;
	$y2 = $y2 * $fakt/ $gr_f;
	$y2 = ($y2*-1)+$hoehe;

imagefilledarc($im, $x2, $y2, 6, 6, 0, 360 , $rgb_red, IMG_ARC_PIE);

// oder

// imageline  ($im, $breite/2, $hoehe, $x2, $y2+($hoehe-$zeiger), $rgb_red);

imagepng($im, IPS_GetKernelDir()."media\	rend_sonnenschein.png");

trend_sonnenschein.png

mach das mal fertig. das ist schick :slight_smile:

happy day ,frank