/usr/share/perl5/Geometry/Primitive/Circle.pm is in libgeometry-primitive-perl 0.22-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | package Geometry::Primitive::Circle;
use Moose;
use MooseX::Storage;
with qw(Geometry::Primitive::Shape MooseX::Clone MooseX::Storage::Deferred);
use Geometry::Primitive::Point;
use Math::Trig ':pi';
has 'origin' => (
is => 'rw',
isa => 'Geometry::Primitive::Point',
coerce => 1
);
has 'radius' => (
is => 'rw',
isa => 'Num',
default => 0
);
sub area {
my ($self) = @_;
return $self->radius**2 * pi;
};
sub circumference {
my ($self) = @_;
return $self->diameter * pi;
}
sub diameter {
my ($self) = @_;
return $self->radius * 2;
}
sub point_end {
my ($self) = @_;
return $self->point_start;
}
sub point_start {
my ($self) = @_;
return Geometry::Primitive::Point->new(
x => $self->origin->x,
y => $self->origin->y - ($self->radius / 2)
);
}
sub scale {
my ($self, $amount) = @_;
return Geometry::Primitive::Circle->new(
radius => $self->radius * $amount
);
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
__END__
=head1 NAME
Geometry::Primitive::Circle - A Circle
=head1 DESCRIPTION
Geometry::Primitive::Circle represents an ellipse with equal width and height.
=head1 SYNOPSIS
use Geometry::Primitive::Circle;
my $circle = Geometry::Primitive::Circle->new(
radius => 15
);
print $circle->diameter;
=head1 ATTRIBUTES
=head2 origin
Set/Get the origin of this circle.
=head2 radius
Set/Get the radius of this circle.
=head1 METHODS
=head2 new
Creates a new Geometry::Primitive::Circle
=head2 area
Returns the area of this circle.
=head2 circumference
Returns the circumference of this circle.
=head2 diameter
Returns the diameter of this circle
=head2 scale ($amount)
Returns a new circle whose radius is $amount times bigger than this one.
=head2 point_end
Set/Get the "end" point of this cicle. Calls C<point_start>.
=head2 point_start
Set/Get the "start" point of this cicle. Returns the point at the circle's
origin X coordinate and the origin Y coordinate + radius / 2.
=head1 AUTHOR
Cory Watson <gphat@cpan.org>
=head1 COPYRIGHT & LICENSE
You can redistribute and/or modify this code under the same terms as Perl
itself.
|