NAME

Zodiac::Angle - Class for zodiac_angle manipulation.

SYNOPSIS

use Zodiac::Angle;

my $obj = Zodiac::Angle->new(%params);
my $zodiac_angle = $obj->angle2zodiac($angle, $opts_hr);
my $angle = $obj->zodiac2angle($zodiac_angle);

METHODS

new

my $obj = Zodiac::Angle->new(%params);

Constructor.

Returns instance of 'Zodiac::Angle'.

angle2zodiac

my $zodiac_angle = $obj->angle2zodiac($angle, $opts_hr);

Convert angle to Zodiac angle.

Options defined $opts_hr control output. Possible keys in reference to hash are: minute (0/1 print minutes, default 1), second (0/1 print second, default 0), second_round (number of round numbers, default 4), sign_type (sign, ascii and struct, default sign).

Default value of $opts_hr is { minute => 1 }.

Returns zodiac angle string.

zodiac2angle

my $angle = $obj->zodiac2angle($zodiac_angle);

Convert Zodiac angle to angle.

Returns angle.

ERRORS

new():
        From Class::Utils::set_params():
                Unknown parameter '%s'.

angle2zodiac():
        Parameter 'sign_type' is bad. Possible values are 'sign', 'ascii' and 'struct'.

EXAMPLE1

use strict;
use warnings;

use Zodiac::Angle;
use Unicode::UTF8 qw(encode_utf8);

# Object.
my $obj = Zodiac::Angle->new;

if (@ARGV < 1) {
        print STDERR "Usage: $0 angle\n";
        exit 1;
}
my $angle = $ARGV[0];

my $zodiac_angle = Zodiac::Angle->new->angle2zodiac($angle);

# Print out.
print 'Angle: '.$angle."\n";
print 'Zodiac angle: '.encode_utf8($zodiac_angle)."\n";

# Output without arguments:
# Usage: __SCRIPT__ angle

# Output with '0.5' argument:
# Angle: 0.5
# Zodiac angle: 0°♈30′

EXAMPLE2

use strict;
use warnings;

use Zodiac::Angle;
use Unicode::UTF8 qw(encode_utf8);

# Object.
my $obj = Zodiac::Angle->new;

if (@ARGV < 1) {
        print STDERR "Usage: $0 angle\n";
        exit 1;
}
my $angle = $ARGV[0];

my $zodiac_angle = Zodiac::Angle->new->angle2zodiac($angle, {
        'minute' => 0,
});

# Print out.
print 'Angle: '.$angle."\n";
print 'Zodiac angle: '.encode_utf8($zodiac_angle)."\n";

# Output without arguments:
# Usage: __SCRIPT__ angle

# Output with '0.5' argument:
# Angle: 0.5
# Zodiac angle: 0°♈

EXAMPLE3

use strict;
use warnings;

use Zodiac::Angle;
use Unicode::UTF8 qw(encode_utf8);

# Object.
my $obj = Zodiac::Angle->new;

if (@ARGV < 1) {
        print STDERR "Usage: $0 angle\n";
        exit 1;
}
my $angle = $ARGV[0];

my $zodiac_angle = Zodiac::Angle->new->angle2zodiac($angle, {
        'minute' => 1,
        'second' => 1,
        'second_round' => 4,
});

# Print out.
print 'Angle: '.$angle."\n";
print 'Zodiac angle: '.encode_utf8($zodiac_angle)."\n";

# Output without arguments:
# Usage: __SCRIPT__ angle

# Output with '0.5' argument:
# Angle: 0.5
# Zodiac angle: 0°♈30′0.0000′′

EXAMPLE4

use strict;
use warnings;

use Zodiac::Angle;
use Unicode::UTF8 qw(encode_utf8);

# Object.
my $obj = Zodiac::Angle->new;

if (@ARGV < 1) {
        print STDERR "Usage: $0 angle\n";
        exit 1;
}
my $angle = $ARGV[0];

my $zodiac_angle = Zodiac::Angle->new->angle2zodiac($angle, {
        'minute' => 1,
        'second' => 1,
        'second_round' => 4,
        'sign_type' => 'ascii',
});

# Print out.
print 'Angle: '.$angle."\n";
print 'Zodiac angle: '.encode_utf8($zodiac_angle)."\n";

# Output without arguments:
# Usage: __SCRIPT__ angle

# Output with '0.5' argument:
# Angle: 0.5
# Zodiac angle: 0° ar 30'0.0000''

EXAMPLE5

use strict;
use warnings;

use Zodiac::Angle;
use Unicode::UTF8 qw(encode_utf8);

# Object.
my $obj = Zodiac::Angle->new;

if (@ARGV < 1) {
        print STDERR "Usage: $0 angle\n";
        exit 1;
}
my $angle = $ARGV[0];

my $zodiac_angle = Zodiac::Angle->new->angle2zodiac($angle, {
        'minute' => 1,
        'second' => 1,
        'second_round' => 4,
        'sign_type' => 'struct',
});

# Print out.
print 'Angle: '.$angle."\n";
print 'Zodiac angle: '.encode_utf8($zodiac_angle)."\n";

# Output without arguments:
# Usage: __SCRIPT__ angle

# Output with '0.5' argument:
# Angle: 0.5
# Zodiac angle: 0°|aries|30′|0.0000′′

DEPENDENCIES

Class::Utils, Error::Pure, List::Util, Readonly, Unicode::UTF8.

SEE ALSO

angle2zodiac

Script to convert angle to zodiac string.

App::Angle2Zodiac

Base class for angle2zodiac script.

Zodiac::Angle::SwissEph

Class for zodiac_angle manipulation based on SwissEph.

REPOSITORY

https://github.com/michal-josef-spacek/Zodiac-Angle

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2020-2024 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.07