#!/usr/bin/env perl
use
5.014;
my
$stickman_grob
= gtree(
children
=> [
circle_grob(
x
=> .5,
y
=> .8,
r
=> .1 ),
lines_grob(
x
=> [ .5, .5 ],
y
=> [ .7, .2 ] ),
lines_grob(
x
=> [ .5, .7 ],
y
=> [ .6, .7 ] ),
lines_grob(
x
=> [ .5, .3 ],
y
=> [ .6, .7 ] ),
lines_grob(
x
=> [ .5, .65 ],
y
=> [ .2, 0 ] ),
lines_grob(
x
=> [ .5, .35 ],
y
=> [ .2, 0 ] ),
],
gp
=> gpar(
col
=>
"blue"
,
fill
=>
"yellow"
,
lwd
=>
'3'
),
);
grid_rect();
for
( 1 .. 100 ) {
my
$vp
= viewport(
height
=> .9,
width
=> .9 );
push_viewport(
$vp
);
grid_rect();
}
up_viewport(0);
grid_lines(
x
=> [ .05, .95 ],
y
=> [ .95, .05 ] );
grid_lines(
x
=> [ .05, .95 ],
y
=> [ .05, .95 ] );
for
my
$i
( 1 .. 20 ) {
push_viewport( viewport(
height
=> .9,
width
=> .9 ) );
if
(
$i
== 5 ) {
push_viewport( viewport(
x
=> .8 ) );
grid_draw(
$stickman_grob
);
up_viewport();
}
if
(
$i
== 10 ) {
push_viewport( viewport(
x
=> .2,
angle
=> 45 ) );
grid_draw(
$stickman_grob
);
up_viewport();
}
if
(
$i
== 20 ) {
push_viewport( viewport(
angle
=> -45 ) );
grid_draw(
$stickman_grob
);
}
}
grid_write(
"stick_men.png"
);