Location : Home > Languages > Perl > Package Title : Algorithm::Line::Bresenham |
![]() |
Algorithm::Line::Bresenham - ピクセルによる直線描画
use Algorithm::Line::Bresenham qw/line/; my @points = line(3,3 => 5,0); # [3,3], [4,2], [4,1], [5,0] を返す。 line(3,3 => 5,0, \&draw_line); # 順に各点を結ぶように draw_line を呼び出す。
Bresenham は格子上で直線を描くアルゴリズムの1つである。始点と終点を与えれば Bresenham は両点を結ぶために必要な格子上の点を計算する。
'Bresenham' や 'line drawing algorithms' をググれば、その内容が把握できるだろう。
Bresenham's Line and Circle Algorithms(http://www.gamedev.net/reference/articles/article767.asp)にあるマーク・フェルドマン(Mark Feldman)の Pascal のコードを活用した。
line ($from_y, $from_x => $to_y, $to_x);
全ての中間点を生成し、配列参照を返す。
line ($from_y, $from_x => $to_y, $to_x, \&callback);
順に各点についての関数を呼び出す。そのコールバックされた結果は実際に点を描くために用いられる。コールバックされた結果から対応する値を返す。
アルゴリズムの実装。
osfameron, <osfameron@cpan.org>
Copyright (c) 2004. osfameron. All rights reserved.
本プログラムはフリーソフトウェアであり、 Perl 本体と同等の条件で修正/再配布してもよい。
http://www.perl.com/perl/misc/Artistic.html を参照せよ。
【訳注と解説】
![]() |
Updated : 2006/06/08 |