1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
| <?php
require_once "jpgraph/jpgraph.php";
require_once "jpgraph/jpgraph_canvas.php";
if( empty($_GET['a']) ) {
$angle=40;
}
else {
$angle=$_GET['a'];
}
$caption = "Demonstration of different anchor points for texts as specified with\n".
"TextAlign(). The red cross marks the coordinate that was given to\n".
"stroke each instance of the string.\n(The green box is the bounding rectangle for the text.)";
$txt="TextAlign()";
$w=480;$h=50;
$xm=90;$ym=80;
$g = new CanvasGraph($w,$h);
$img = $g->img;
$img->SetFont(FF_ARIAL,FS_NORMAL,16);
$tw=$img->GetBBoxWidth($txt,$angle);
$th=$img->GetBBoxHeight($txt,$angle);
$img->SetFont(FF_ARIAL,FS_NORMAL,11);
$ch=$img->GetBBoxHeight($caption);
$h = 3*$th+2*$ym + $ch;
$g = new CanvasGraph($w,$h);
$img = $g->img;
$anchors = array('left','top',
'center','top',
'right','top',
'left','center',
'center','center',
'right','center',
'left','bottom',
'center','bottom',
'right','bottom');
$n = count($anchors)/2;
for( $i=0,$r=0,$c=0; $i < $n; ++$i ) {
$x = $c*($tw+$xm)+$xm/2;
$y = $r*($th+$ym)+$ym/2-10;
$img->SetColor('blue');
$img->SetTextAlign($anchors[$i*2],$anchors[$i*2+1]);
$img->SetFont(FF_ARIAL,FS_NORMAL,16);
$img->StrokeText($x,$y,$txt,$angle,"left",true);
$img->SetColor('black');
$img->SetFont(FF_FONT1,FS_BOLD);
$img->SetTextAlign('center','top');
$align = sprintf('("%s","%s")',$anchors[$i*2],$anchors[$i*2+1]);
$img->StrokeText($c*($tw/2+$xm)+$xm/2+$tw/2,$r*($th/2+$ym)+$th+$ym/2-4,$align);
$c++;
if( $c==3 ) {
$c=0;$r++;
}
}
$img->SetTextAlign('center','bottom');
$img->SetFont(FF_ARIAL,FS_ITALIC,11);
$img->StrokeText($w/2,$h-10,$caption,0,'left');
$img->SetColor('navy');
$img->Rectangle(0,0,$w-1,$h-1);
$g->Stroke();
?> |