0
|
1 package Bio::Graphics::Glyph::dot;
|
|
2 # DAS-compatible package to use for drawing a ring or filled circle
|
|
3
|
|
4 use strict;
|
|
5 use vars '@ISA';
|
|
6 use Bio::Graphics::Glyph::generic;
|
|
7 @ISA = 'Bio::Graphics::Glyph::generic';
|
|
8 use constant PI => 3.14159;
|
|
9
|
|
10 sub draw {
|
|
11 my $self = shift;
|
|
12 # $self->SUPER::draw(@_);
|
|
13 my $gd = shift;
|
|
14 my $fg = $self->fgcolor;
|
|
15
|
|
16 # now draw a circle
|
|
17 my ($x1,$y1,$x2,$y2) = $self->calculate_boundaries(@_);
|
|
18 my $xmid = (($x1+$x2)/2); my $width = abs($x2-$x1);
|
|
19 my $ymid = (($y1+$y2)/2); my $height = abs($y2-$y1);
|
|
20
|
|
21 #only point ovals allowed now
|
|
22 my $r = $self->height ;
|
|
23 $gd->arc($xmid,$ymid,$r,$r,0,360,$fg);
|
|
24
|
|
25
|
|
26 if ($self->option('bgcolor')){
|
|
27 my $c = $self->color('bgcolor');
|
|
28 $gd->fill($xmid,$ymid,$c);
|
|
29 }
|
|
30
|
|
31 #how about a fuse for the bomb?
|
|
32 #work in degrees, not radians. So we define PI above
|
|
33 if(defined $self->option('stem')){
|
|
34 my $angle = $self->option('stem');
|
|
35
|
|
36 $gd->line($xmid+($r/PI*sin($angle*PI/180)),
|
|
37 $ymid+($r/PI*cos($angle*PI/180)),
|
|
38 $xmid+($r*sin($angle*PI/180)),
|
|
39 $ymid+($r*cos($angle*PI/180)),$fg);
|
|
40 }
|
|
41
|
|
42 $self->draw_label($gd,@_) if $self->option('label');
|
|
43 }
|
|
44
|
|
45 1;
|
|
46
|
|
47 __END__
|
|
48
|
|
49 =head1 NAME
|
|
50
|
|
51 Bio::Graphics::Glyph::dot - The "dot" glyph
|
|
52
|
|
53 =head1 SYNOPSIS
|
|
54
|
|
55 See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>.
|
|
56
|
|
57 =head1 DESCRIPTION
|
|
58
|
|
59 This glyph draws an ellipse the width of the scaled feature passed,
|
|
60 and height a possibly configured height (See Bio::Graphics::Glyph).
|
|
61
|
|
62 =head2 OPTIONS
|
|
63
|
|
64 The following options are standard among all Glyphs. See
|
|
65 L<Bio::Graphics::Glyph> for a full explanation.
|
|
66
|
|
67 Option Description Default
|
|
68 ------ ----------- -------
|
|
69
|
|
70 -fgcolor Foreground color black
|
|
71
|
|
72 -outlinecolor Synonym for -fgcolor
|
|
73
|
|
74 -bgcolor Background color turquoise
|
|
75
|
|
76 -fillcolor Synonym for -bgcolor
|
|
77
|
|
78 -linewidth Line width 1
|
|
79
|
|
80 -height Height of glyph 10
|
|
81
|
|
82 -font Glyph font gdSmallFont
|
|
83
|
|
84 -connector Connector type 0 (false)
|
|
85
|
|
86 -connector_color
|
|
87 Connector color black
|
|
88
|
|
89 -label Whether to draw a label 0 (false)
|
|
90
|
|
91 -description Whether to draw a description 0 (false)
|
|
92
|
|
93 In addition to the common options, the following glyph-specific
|
|
94 options are recognized:
|
|
95
|
|
96 Option Description Default
|
|
97 ------ ----------- -------
|
|
98
|
|
99 -point Whether to draw an ellipse feature width
|
|
100 the scaled width of the
|
|
101 feature or with radius
|
|
102 point.
|
|
103
|
|
104 =head1 BUGS
|
|
105
|
|
106 Please report them.
|
|
107
|
|
108 =head1 SEE ALSO
|
|
109
|
|
110 L<Bio::Graphics::Panel>,
|
|
111 L<Bio::Graphics::Glyph>,
|
|
112 L<Bio::Graphics::Glyph::arrow>,
|
|
113 L<Bio::Graphics::Glyph::cds>,
|
|
114 L<Bio::Graphics::Glyph::crossbox>,
|
|
115 L<Bio::Graphics::Glyph::diamond>,
|
|
116 L<Bio::Graphics::Glyph::dna>,
|
|
117 L<Bio::Graphics::Glyph::dot>,
|
|
118 L<Bio::Graphics::Glyph::ellipse>,
|
|
119 L<Bio::Graphics::Glyph::extending_arrow>,
|
|
120 L<Bio::Graphics::Glyph::generic>,
|
|
121 L<Bio::Graphics::Glyph::graded_segments>,
|
|
122 L<Bio::Graphics::Glyph::heterogeneous_segments>,
|
|
123 L<Bio::Graphics::Glyph::line>,
|
|
124 L<Bio::Graphics::Glyph::pinsertion>,
|
|
125 L<Bio::Graphics::Glyph::primers>,
|
|
126 L<Bio::Graphics::Glyph::rndrect>,
|
|
127 L<Bio::Graphics::Glyph::segments>,
|
|
128 L<Bio::Graphics::Glyph::ruler_arrow>,
|
|
129 L<Bio::Graphics::Glyph::toomany>,
|
|
130 L<Bio::Graphics::Glyph::transcript>,
|
|
131 L<Bio::Graphics::Glyph::transcript2>,
|
|
132 L<Bio::Graphics::Glyph::translation>,
|
|
133 L<Bio::Graphics::Glyph::triangle>,
|
|
134 L<Bio::DB::GFF>,
|
|
135 L<Bio::SeqI>,
|
|
136 L<Bio::SeqFeatureI>,
|
|
137 L<Bio::Das>,
|
|
138 L<GD>
|
|
139
|
|
140 =head1 AUTHOR
|
|
141
|
|
142 Allen Day E<lt>day@cshl.orgE<gt>.
|
|
143
|
|
144 Copyright (c) 2001 Cold Spring Harbor Laboratory
|
|
145
|
|
146 This library is free software; you can redistribute it and/or modify
|
|
147 it under the same terms as Perl itself. See DISCLAIMER.txt for
|
|
148 disclaimers of warranty.
|
|
149
|
|
150 =cut
|