area.pm
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
- #==========================================================================
- # Copyright (c) 1995-1998 Martien Verbruggen
- #--------------------------------------------------------------------------
- #
- # Name:
- # GIFgraph::area.pm
- #
- # $Id: area.pm,v 1.1.1.1 2002/02/26 10:16:37 oetiker Exp $
- #
- #==========================================================================
- package GIFgraph::area;
-
- use strict qw(vars refs subs);
- use GIFgraph::axestype;
- @GIFgraph::area::ISA = qw( GIFgraph::axestype );
- {
- # PRIVATE
- sub draw_data_set($$$) # GD::Image, @data, $ds
- {
- my $s = shift; # object reference
- my $g = shift; # gd object reference
- my $d = shift; # reference to data set
- my $ds = shift; # number of the data set
- my $num = 0;
- # Select a data colour
- my $dsci = $s->set_clr( $g, $s->pick_data_clr($ds) );
- # Create a new polygon
- my $poly = new GD::Polygon();
- # Add the first 'zero' point
- my ($x, $y) = $s->val_to_pixel(1, 0, $ds);
- $poly->addPt($x, $y);
- # Add the data points
- my $i;
- for $i (0 .. $s->{numpoints})
- {
- next unless (defined $d->[$i]);
- ($x, $y) = $s->val_to_pixel($i + 1, $d->[$i], $ds);
- $poly->addPt($x, $y);
- $num = $i;
- }
- # Add the last zero point
- ($x, $y) = $s->val_to_pixel($num + 1, 0, $ds);
- $poly->addPt($x, $y);
- # Draw a filled and a line polygon
- $g->filledPolygon($poly, $dsci);
- $g->polygon($poly, $s->{acci});
- # Draw the accent lines
- for $i (1 .. ($s->{numpoints} - 1))
- {
- next unless (defined $d->[$i]);
- ($x, $y) = $s->val_to_pixel($i + 1, $d->[$i], $ds);
- $g->dashedLine( $x, $y, $x, $s->{zeropoint}, $s->{acci} );
- }
- }
- } # End of package GIFgraph::area
-
- 1;