/usr/share/perl5/vendor_perl/GD/Graph
#========================================================================== # Copyright (c) 1995-1998 Martien Verbruggen #-------------------------------------------------------------------------- # # Name: # GD::Graph::points.pm # # $Id: points.pm,v 1.13 2005/12/14 04:13:32 ben Exp $ # #========================================================================== package GD::Graph::points; ($GD::Graph::points::VERSION) = '$Revision: 1.13 $' =~ /\s([\d.]+)/; use strict; use GD::Graph::axestype; use GD::Graph::utils qw(:all); @GD::Graph::points::ISA = qw( GD::Graph::axestype ); # PRIVATE sub draw_data_set { my $self = shift; my $ds = shift; my @values = $self->{_data}->y_values($ds) or return $self->_set_error("Impossible illegal data set: $ds", $self->{_data}->error); # Pick a colour my $dsci = $self->set_clr($self->pick_data_clr($ds)); my $type = $self->pick_marker($ds); for (my $i = 0; $i < @values; $i++) { next unless defined $values[$i]; my ($xp, $yp); if (defined($self->{x_min_value}) && defined($self->{x_max_value})) { ($xp, $yp) = $self->val_to_pixel( $self->{_data}->get_x($i), $values[$i], $ds); } else { ($xp, $yp) = $self->val_to_pixel($i+1, $values[$i], $ds); } $self->marker($xp, $yp, $type, $dsci ); $self->{_hotspots}->[$ds]->[$i] = ['rect', $self->marker_coordinates($xp, $yp)]; } return $ds; } # Pick a marker type sub pick_marker # number { my $self = shift; my $num = shift; ref $self->{markers} ? $self->{markers}[ $num % (1 + $#{$self->{markers}}) - 1 ] : ($num % 8) || 8; } # Draw a marker sub marker_coordinates { my $self = shift; my ($xp, $yp) = @_; return ( $xp - $self->{marker_size}, $xp + $self->{marker_size}, $yp + $self->{marker_size}, $yp - $self->{marker_size}, ); } sub marker # $xp, $yp, $type, $colourindex { my $self = shift; my ($xp, $yp, $mtype, $mclr) = @_; return unless defined $mclr; my ($l, $r, $b, $t) = $self->marker_coordinates($xp, $yp); MARKER: { ($mtype == 1) && do { # Square, filled $self->{graph}->filledRectangle($l, $t, $r, $b, $mclr); last MARKER; }; ($mtype == 2) && do { # Square, open $self->{graph}->rectangle($l, $t, $r, $b, $mclr); last MARKER; }; ($mtype == 3) && do { # Cross, horizontal $self->{graph}->line($l, $yp, $r, $yp, $mclr); $self->{graph}->line($xp, $t, $xp, $b, $mclr); last MARKER; }; ($mtype == 4) && do { # Cross, diagonal $self->{graph}->line($l, $b, $r, $t, $mclr); $self->{graph}->line($l, $t, $r, $b, $mclr); last MARKER; }; ($mtype == 5) && do { # Diamond, filled $self->{graph}->line($l, $yp, $xp, $t, $mclr); $self->{graph}->line($xp, $t, $r, $yp, $mclr); $self->{graph}->line($r, $yp, $xp, $b, $mclr); $self->{graph}->line($xp, $b, $l, $yp, $mclr); $self->{graph}->fillToBorder($xp, $yp, $mclr, $mclr); last MARKER; }; ($mtype == 6) && do { # Diamond, open $self->{graph}->line($l, $yp, $xp, $t, $mclr); $self->{graph}->line($xp, $t, $r, $yp, $mclr); $self->{graph}->line($r, $yp, $xp, $b, $mclr); $self->{graph}->line($xp, $b, $l, $yp, $mclr); last MARKER; }; ($mtype == 7) && do { # Circle, filled $self->{graph}->arc($xp, $yp, 2 * $self->{marker_size}, 2 * $self->{marker_size}, 0, 360, $mclr); $self->{graph}->fillToBorder($xp, $yp, $mclr, $mclr); last MARKER; }; ($mtype == 8) && do { # Circle, open $self->{graph}->arc($xp, $yp, 2 * $self->{marker_size}, 2 * $self->{marker_size}, 0, 360, $mclr); last MARKER; }; ($mtype == 9) && do { # Horizontal line $self->{graph}->line($l, $yp, $r, $yp, $mclr); last MARKER; }; ($mtype == 10) && do { # vertical line $self->{graph}->line($xp, $t, $xp, $b, $mclr); last MARKER; }; } } sub draw_legend_marker { my $self = shift; my $n = shift; my $x = shift; my $y = shift; my $ci = $self->set_clr($self->pick_data_clr($n)); my $old_ms = $self->{marker_size}; my $ms = _min($self->{legend_marker_height}, $self->{legend_marker_width}); ($self->{marker_size} > $ms/2) and $self->{marker_size} = $ms/2; $x += int($self->{legend_marker_width}/2); $y += int($self->{lg_el_height}/2); $n = $self->pick_marker($n); $self->marker($x, $y, $n, $ci); $self->{marker_size} = $old_ms; } "Just another true value";
.
Edit
..
Edit
Data.pm
Edit
Error.pm
Edit
FAQ.pod
Edit
area.pm
Edit
axestype.pm
Edit
bars.pm
Edit
colour.pm
Edit
hbars.pm
Edit
lines.pm
Edit
linespoints.pm
Edit
mixed.pm
Edit
pie.pm
Edit
points.pm
Edit
utils.pm
Edit