From: Martin Mares Date: Thu, 1 Sep 2011 10:29:45 +0000 (+0200) Subject: Digit: Kreslitko X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=f1b92ba645eb901f912c3eee8cb6e6422a549fd2;p=misc.git Digit: Kreslitko --- diff --git a/ucw/digit.c b/ucw/digit.c index 17267c2..6331782 100644 --- a/ucw/digit.c +++ b/ucw/digit.c @@ -38,6 +38,21 @@ static void print(conf c) // putchar('\n'); } +static void print_matches(conf c) +{ + printf("@@"); + for (int i=0; iindegree, s->outdegree, s->from); + printf("Degree: %d in, %d out, from=%d\n", s->indegree, s->outdegree, s->from); + print_matches(s->c); + putchar('\n'); } } diff --git a/ucw/draw-digit b/ucw/draw-digit new file mode 100755 index 0000000..6dbc4a0 --- /dev/null +++ b/ucw/draw-digit @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Cairo; + +my $u = 72/4; +my $s = Cairo::PdfSurface->create('digit.pdf', 7*$u, 7*$u); +my $c = Cairo::Context->create($s); +my $n = 0; + +$c->set_line_width(2); +$c->set_line_cap('round'); +$c->set_source_rgb(0, 0, 0); + +while (<>) { + s/^@@ // or next; + chomp; + my @r = split /\s+/; + @r == 5 or next; + + for my $r (@r) { + my ($x1,$y1,$x2,$y2) = $r =~ /^\((\d+),(\d+)\)-\((\d+),(\d+)\)$/ or die; + $c->move_to((.9*$x1+.1*$x2)*$u, (.9*$y1+.1*$y2)*$u); + $c->line_to((.9*$x2+.1*$x1)*$u, (.9*$y2+.1*$y1)*$u); + $c->stroke; + } + + $c->show_page; + $n++; +} + +print "Output $n pages.\n";