Location : Home > Languages > Perl > Package
Title : Algorithm::Line::Bresenham
Toolbox Logo

名称

 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 Algorithmshttp://www.gamedev.net/reference/articles/article767.asp)にあるマーク・フェルドマン(Mark Feldman)の Pascal のコードを活用した。


関数

line

line ($from_y, $from_x => $to_y, $to_x);

 全ての中間点を生成し、配列参照を返す。

line ($from_y, $from_x => $to_y, $to_x, \&callback);

 順に各点についての関数を呼び出す。そのコールバックされた結果は実際に点を描くために用いられる。コールバックされた結果から対応する値を返す。


TODO とバグ

 アルゴリズムの実装。


著者とライセンス

 osfameron, <osfameron@cpan.org>

 Copyright (c) 2004. osfameron. All rights reserved.
 本プログラムはフリーソフトウェアであり、 Perl 本体と同等の条件で修正/再配布してもよい。
 http://www.perl.com/perl/misc/Artistic.html を参照せよ。


【訳注と解説】

  1. 元ネタとなっているBresenham's Line and Circle Algorithms
  2. 著者の言うとおりググッてみた。日本語でのいい解説。ブレゼンハムアルゴリズムによる直線描画
Toolbox Logo
Updated : 2006/06/08