NAME

Graph::Drawing::Random - Concentric ring constrained, random angle, polar coordinate graph drawing.

SYNOPSIS

use Graph::Drawing::Random;

my $g = Graph::Drawing::Random->new(
    type          => 'GD',
    format        => 'png',
    name          => 'The_Beatles',
    surface_size  => 300,  # half the max weight if not specified.
    grade         => 20,
    layout        => 'circular',
    show_grid     => 1,
    grid_labels   => 1,
    show_axes     => 1,
    show_arrows   => 1,
    vertex_labels => 1,
    vertex_size   => 6,
    data => {
        weight => {
            john   => { paul => 30, },
            paul   => { john => 30, george => 20, ringo => 10, },
            george => { john => 10, paul   => 10, ringo => 10, },
            ringo  => {},
            gene   => {},
        },
    },
);

# Recolor and then redraw a vertex and edge.
my $paul = $g->vertex('paul');
$g->surface->{colors}{edge}  = [ 0, 100, 0 ];
$g->surface->{colors}{arrow} = [ 0, 200, 0 ];
$g->surface->draw_edge($paul, $g->vertex('george'));
$paul->{colors}{border} = [ 255,   0, 0 ];
$paul->{colors}{fill}   = [ 255, 255, 0 ];
$g->surface->draw_vertex($paul);

# Show 'em what they've won, Don pardo!
$g->surface->write_image;

DESCRIPTION

Draw a concentric ring constrained, random angle, polar coordinate graph.

PUBLIC METHODS

new %ARGUMENTS

The arguments that must be provided are described in the Graph::Weighted, Graph::Drawing::Surface and Graph::Drawing::Vertex documentation.

With the following exceptions:

surface_size $PIXELS

This is an alias to the Graph::Drawing::Surface size attribute.

vertex_size $PIXELS

This is an alias to the Graph::Drawing::Vertex size attribute.

vertex_labels 0 | 1

This is an alias to the Graph::Drawing::Vertex show_label attribute, and is used by the parent initialization routine to set all the vertices to this value.

PRIVATE METHODS

get_coordinate $VERTEX

Compute and return the coordinate of a Graph::Drawing::Vertex object.

This method is used automatically for the vertex plotting that is done in the parent module.

This method takes a Graph::Drawing::Vertex object as an argument.

SEE ALSO

Graph::Weighted

Graph::Drawing

Graph::Drawing::Base

Graph::Drawing::Vertex

Graph::Drawing::Surface

TO DO

Make this module more flexible to justify such a generic namespace.

AUTHOR

Gene Boggs <gene@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2003 by Gene Boggs

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.