##################################################################
# Modul für Uhren
#
# Letzte Aenderung: 05.01.2012
##################################################################
use POSIX qw /floor ceil/;
use Math::Trig;
use strict;
use warnings;

sub uhr {
    my ( $layer, $x, $y, $radius, $laenge, $farbe, $fuellart, $fuellfarbe, $linienart, $linienstaerke, $parameter ) = @_;

    kreis( $layer, $x, $y, $radius, $farbe, $fuellart, $fuellfarbe, $linienart, $linienstaerke, $parameter );
    kreis( $layer, $x, $y, $laenge / 8, $farbe, $fuellart, $fuellfarbe, $linienart, $linienstaerke, $parameter );

    my $i = 0;

    for ( $i = 0 ; $i < 360 ; $i = $i + 90 ) {
	kreisskala( $layer, $x, $y, $radius - $laenge, $laenge, $i, $farbe, $linienart, $linienstaerke, $parameter, "-" );
    }

    for ( $i = 0 ; $i < 360 ; $i = $i + 30 ) {
	kreisskala( $layer, $x, $y, $radius - $laenge / 2, $laenge / 2, $i, $farbe, $linienart, $linienstaerke, $parameter, "-" );
    }

    for ( $i = 00 ; $i < 360 ; $i = $i + 10 ) {
	kreisskala( $layer, $x, $y, $radius - $laenge / 4, $laenge / 4, $i, $farbe, $linienart, $linienstaerke, $parameter, "-" );
    }

    kreistext( $layer, $x, $y, $radius - $laenge, 90,  $farbe, 12, 0, 270 );
    kreistext( $layer, $x, $y, $radius - $laenge, 0,   $farbe, 3,  0, 180 );
    kreistext( $layer, $x, $y, $radius - $laenge, 180, $farbe, 9,  0, 0 );
    kreistext( $layer, $x, $y, $radius - $laenge, 270, $farbe, 6,  0, 90 );
}

sub uhrzeit {
    my ( $layer, $x, $y, $radius, $stunde, $minute, $sekunde, $farbe, $linienart, $linienstaerke, $parameter ) = @_;

    my $winkelstunde  = 0;
    my $winkelminute  = 0;
    my $winkelsekunde = 0;

    if ( $sekunde ne "" ) {
	$winkelsekunde = 90 - 360 / 60 * $sekunde;
	liniepolar( $layer, $x, $y, "", $radius, $winkelsekunde, "", $linienart, $linienstaerke / 2, $farbe, $parameter, "" );

    }
    if ( $minute ne "" ) {
	$winkelminute = 90 - 360 / 60 * $minute;
	if ( $sekunde ne "" ) { $winkelminute = 90 - ( 360 / 60 * $minute + 10 / 60 * $sekunde ); }
	liniepolar( $layer, $x, $y, "", $radius, $winkelminute, "", $linienart, $linienstaerke, $farbe, $parameter, "->" );
    }

    if ( $stunde ne "" ) {

	if ( $stunde > 12 ) {$stunde = $stunde - 12;}
	$winkelstunde = 90 - 360 / 12 * $stunde;
	if ( $minute ne "" ) {$winkelstunde = 90 - ( 360 / 12 * $stunde + 10 / 60 * $minute );}

	liniepolar( $layer, $x, $y, "", $radius * 3 / 4, $winkelstunde, "", $linienart, $linienstaerke, $farbe, $parameter, "->" );
    }

}

1;

