Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
// $Id: canvaspiralex1.php,v 1.1 2002/10/26 11:35:42 aditus Exp $
3
include "../jpgraph.php";
4
include "../jpgraph_canvas.php";
5
 
6
 
7
if( empty($_GET['r']) )
8
    $r = 0.44;
9
else
10
    $r = $_GET['r'];
11
 
12
if( empty($_GET['w']) )
13
    $w=150;
14
else
15
    $w = $_GET['w'];
16
 
17
if( empty($_GET['h']) )
18
    $h=240;
19
else
20
    $h = $_GET['h'];
21
 
22
if( $w < 60 ) $w=60;
23
if( $h < 60 ) $h=60;
24
 
25
 
26
function SeaShell($img,$x,$y,$w,$h,$r,$n=12,$color1='navy',$color2='red') {
27
 
28
    $x += $w;
29
    $w = (1-$r)/$r*$w;
30
 
31
    $sa = 0;
32
    $ea = 90;
33
 
34
    $s1 = 1;
35
    $s2 = -1;
36
    $x_old=$x; $y_old=$y;
37
    for($i=1; $i < $n; ++$i) {
38
	$sa += 90;
39
	$ea += 90;
40
	if( $i % 2 == 1 ) {
41
	    $y = $y + $s1*$h*$r;
42
	    $h = (1-$r)*$h;
43
	    $w = $w / (1-$r) * $r ;
44
	    $s1 *= -1;
45
	    $img->SetColor($color1);
46
	    $img->Line($x,$y,$x+$s1*$w,$y);
47
	}
48
	else {
49
	    $x = $x + $s2*$w*$r;
50
	    $w = (1-$r)*$w;
51
	    $h = $h / (1-$r) * $r;
52
	    $s2 *= -1;
53
	    $img->SetColor($color1);
54
	    $img->Line($x,$y,$x,$y-$s2*$h);
55
	}
56
	$img->SetColor($color2);
57
	$img->FilledRectangle($x-1,$y-1,$x+1,$y+1);
58
	$img->Arc($x,$y,2*$w+1,2*$h+1,$sa,$ea);
59
	$img->Arc($x,$y,2*$w,2*$h,$sa,$ea);
60
	$img->Arc($x,$y,2*$w-1,2*$h-1,$sa,$ea);
61
	$img->Line($x_old,$y_old,$x,$y);
62
	$x_old=$x; $y_old=$y;
63
    }
64
}
65
 
66
$g = new CanvasGraph($w,$h);
67
//$gr = 1.61803398874989484820;
68
 
69
$p = SeaShell($g->img,0,20,$w-1,$h-21,$r,19);
70
$g->img->SetColor('black');
71
$g->img->Rectangle(0,20,$w-1,$h-1);
72
$g->img->SetFont(FF_FONT2,FS_BOLD);
73
$g->img->SetTextAlign('center','top');
74
$g->img->StrokeText($w/2,0,"Canvas Spiral");
75
 
76
$g->Stroke();
77
?>
78