File: pdf_clock.php3

package info (click to toggle)
php3 3%3A3.0.18-0potato1.1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 17,736 kB
  • ctags: 11,198
  • sloc: ansic: 108,120; sh: 2,512; php: 2,024; yacc: 1,887; makefile: 1,038; perl: 537; pascal: 238; awk: 90; cpp: 28; sql: 11
file content (92 lines) | stat: -rw-r--r-- 2,311 bytes parent folder | download | duplicates (3)
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
91
92
<?php
// This only works with pdflib 2.0

$pdffilename = "clock.pdf";
$radius = 200;
$margin = 20;
$pagecount = 190;

$fp = fopen($pdffilename, "w");
$pdf = pdf_open($fp);
pdf_set_info_creator($pdf, "pdf_clock.php3");
pdf_set_info_author($pdf, "Uwe Steinmann");
pdf_set_info_title($pdf, "Analog Clock");

while($pagecount-- > 0) {
  pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));
  
  pdf_set_transition($pdf, 4);  /* wipe */
  pdf_set_duration($pdf, 0.5);
  
  pdf_translate($pdf, $radius + $margin, $radius + $margin);
  pdf_save($pdf);
  pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);
  
  /* minute strokes */
  pdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6)
    {
    pdf_rotate($pdf, 6.0);
    pdf_moveto($pdf, $radius, 0.0);
    pdf_lineto($pdf, $radius-$margin/3, 0.0);
    pdf_stroke($pdf);
    }
  
  pdf_restore($pdf);
  pdf_save($pdf);
  
  /* 5 minute strokes */
  pdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30)
  {
    pdf_rotate($pdf, 30.0);
    pdf_moveto($pdf, $radius, 0.0);
    pdf_lineto($pdf, $radius-$margin, 0.0);
    pdf_stroke($pdf);
  }
  
  $ltime = getdate();
  
  /* draw hour hand */
  pdf_save($pdf);
  pdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  pdf_moveto($pdf, -$radius/10, -$radius/20);
  pdf_lineto($pdf, $radius/2, 0.0);
  pdf_lineto($pdf, -$radius/10, $radius/20);
  pdf_closepath($pdf);
  pdf_fill($pdf);
  pdf_restore($pdf);
  
  /* draw minute hand */
  pdf_save($pdf);
  pdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  pdf_moveto($pdf, -$radius/10, -$radius/20);
  pdf_lineto($pdf, $radius * 0.8, 0.0);
  pdf_lineto($pdf, -$radius/10, $radius/20);
  pdf_closepath($pdf);
  pdf_fill($pdf);
  pdf_restore($pdf);
  
  /* draw second hand */
  pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  pdf_setlinewidth($pdf, 2);
  pdf_save($pdf);
  pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  pdf_moveto($pdf, -$radius/5, 0.0);
  pdf_lineto($pdf, $radius, 0.0);
  pdf_stroke($pdf);
  pdf_restore($pdf);
  
  /* draw little circle at center */
  pdf_circle($pdf, 0, 0, $radius/30);
  pdf_fill($pdf);
  
  pdf_restore($pdf);
  
  pdf_end_page($pdf);
}

$pdf = pdf_close($pdf);
fclose($fp);
echo "<A HREF='$pdffilename'>pdf file</A>";
?>