The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Math::Geometry::Construction::Point - a free user-defined point

VERSION

Version 0.014

SYNOPSIS

  my $p1 = $construction->add_point(position => [100, 150]);

  my $p2 = $construction->add_point('x' => 50, 'y' => 90,
                                    hidden => 1);

  my $p3 = $construction->add_point('x' => 70, 'y' => 130,
                                    style          => {stroke => 'red'},
                                    label          => 'A',
                                    label_offset_x => 5,
                                    label_offset_y => -5);

DESCRIPTION

An instance of this class represents a user defined free point, as opposed to a derived point, e.g. an intersection point. An instance of this class got its position directly from the user. It is created by using the add_point method of Math::Geometry::Construction.

INTERFACE

Public Attributes

position

Holds a Math::Vector::Real object with the position of the point. As initialization argument to the constructor, you can also give either an array reference or a Math::VectorReal|Math::VectorReal (VectorReal one word instead of Vector::Real) object. In the first case, the first two elements of the array are used to construct the Math::Vector::Real object, further elements are silently ignored. In the second case, the x and y attributes are used, z is ignored.

As a further option, you can give x and y explicitly.

Examples:

  # Math::Vector::Real object
  $construction->add_point(position => V(1, 4));
  # arrayref
  $construction->add_point(position => [1, 4]);
  # Math::VectorReal object
  $construction->add_point(position => vector(1, 4, 0));
  # x and y
  $construction->add_point('x' => 1, 'y' => 4);

Note that these conversions are only done at construction time (at least currently). If you want to change the position later you have to hand a Math::Vector::Real object to the mutator method.

Note that you must not alter the elements of the Math::Vector::Real object directly although the class interface allows it. This will circumvent the tracking of changes that Math::Geometry::Construction performs in order to improve performance.

size

A point is currently always drawn as a circle. This might become more flexible in the future. size determines the size of the point in the output. For a circle it is its diameter. This parameter is currently undef by default, because the output falls back to radius (see below). When radius is removed, size will default to 6.

radius

Half of size. This attribute is deprecated and might be removed in a future version. Use size instead.

General Output Attributes

See Math::Geometry::Construction::Output.

Methods

draw

Called by the Construction object during output generation. Currently draws a circle of diameter size, but this might become more flexible in the future.

id_template

Class method returning $ID_TEMPLATE, which defaults to 'P%09d'.

DIAGNOSTICS

Exceptions

Warnings

BUGS AND LIMITATIONS

No bugs have been reported. Please report all bugs directly to the author.

AUTHOR

Lutz Gehlen, <perl at lutzgehlen.de>

LICENSE AND COPYRIGHT

Copyright 2011 Lutz Gehlen.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.