« Perlで図形言語 | トップページ | »

2007年3月21日 (水)

Perlで図形言語2

前回 につづきPerlで図形言語を作成。
前回上手くできなかった再帰的な図形もできました。
Square_limit_4

原因は関数呼ぶだけでいいところを、
関数を返してしまっていた事でした。

それから、線だけじゃなくて画像もできるように改造。
拡大は実数OKだけど、縮小は実数を使えないみたいで、
ある程度ウィンドウのサイズと画像を調整しないと上手くいかないのが、
よろしくないのですが、ここまでできました。
Corner_split_4

ソースはこんな感じ。

#!/usr/bin/perl -w
use strict;
use Tk;
require "picture.pl";

my $width  = 360;
my $height = 360;
my $top = MainWindow->new();
my $canvas = $top->Canvas(width => $width, height => $height);
my $image= $top->Photo( -file => 'ch2-Z-G-30.gif');
print $image->width, ":", $image->height, "\n";

my $frame = &make_frame(&make_vect(0, 0),
                                         &make_vect($width, 0),
                                         &make_vect(0, $height));
my $painter = &picture_painter_2($canvas, $image);
my $func = &corner_split($painter, 4);
&$func($frame);

$canvas->pack();
MainLoop();

顔写真は、本家のサイトから拝借しました。
ライセンス的にどうなんでしょうか?
だめだったらすぐ削除します。

あと、線分と画像の座標の取り方が違ったので、
線分の表示する所をちょこっと変更。

下の3つが使用したコードです。
picture2.pl
main - 線分の方
main2 - 画像の方

picture2.plとなっているのは、同名のファイルをアップロードしようとすると上書きになるためです。

使用したい方はご自由にお使い下さい。ただし、責任は持ちません。

|

« Perlで図形言語 | トップページ | »

コメント

ギコ猫ですか?

投稿: hg | 2007年4月13日 (金) 午後 01時53分

< hgさん

人の形をたくさん配置しただけなのですが、
そういう気持ちでみればそう見れなくもないかもですね。

投稿: ココサブ | 2007年4月13日 (金) 午後 04時17分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/126478/14338663

この記事へのトラックバック一覧です: Perlで図形言語2:

« Perlで図形言語 | トップページ | »