]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/commitdiff
Add a sample script
authorVincent Pit <vince@profvince.com>
Thu, 22 Jul 2010 21:35:25 +0000 (23:35 +0200)
committerVincent Pit <vince@profvince.com>
Thu, 22 Jul 2010 21:35:25 +0000 (23:35 +0200)
MANIFEST
samples/synopsis.pl [new file with mode: 0644]

index f64fe4529685f3243361c9b364a854977a884abd..bb500094227dee606451e4e955fcb106a6fe7ce8 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -35,6 +35,7 @@ lib/LaTeX/TikZ/Set/Polyline.pm
 lib/LaTeX/TikZ/Set/Raw.pm
 lib/LaTeX/TikZ/Set/Rectangle.pm
 lib/LaTeX/TikZ/Set/Sequence.pm
+samples/synopsis.pl
 t/00-load.t
 t/01-api.t
 t/10-set.t
diff --git a/samples/synopsis.pl b/samples/synopsis.pl
new file mode 100644 (file)
index 0000000..892e8bb
--- /dev/null
@@ -0,0 +1,46 @@
+#!perl
+
+use strict;
+use warnings;
+
+use blib;
+
+use LaTeX::TikZ;
+
+# A couple of lines
+my $hline = Tikz->line(-1 => 1);
+my $vline = Tikz->line([ 0, -1 ] => [ 0, -1 ]);
+
+# Paint them in red
+$_->mod(Tikz->color('red')) for $hline, $vline;
+
+# An octogon
+use Math::Complex;
+my $octo = Tikz->closed_polyline(
+ map Math::Complex->emake(1, ($_ * pi)/4), 0 .. 7
+);
+
+# Only keep a portion of it
+$octo->clip(Tikz->rectangle(-0.5*(1+i), 2*(1+i)));
+
+# Fill it with dots
+$octo->mod(Tikz->pattern(class => 'Dots'));
+
+# Create a formatter object
+my $tikz = Tikz->formatter;
+
+# Put those objects all together and print them
+my $seq = Tikz->seq($octo, $hline, $vline);
+my ($head, $decl, $body) = $tikz->render($seq);
+my @lines = (
+ "\\documentclass[12pt]{article}",
+ @$head,
+ "\\begin{document}",
+ "\\pagestyle{empty}",
+ @$decl,
+ "\\begin{center}",
+ @$body,
+ "\\end{center}",
+ "\\end{document}",
+);
+print "$_\n" for @lines;