Article View: fj.lang.c
Article #370Re: 2点間の距離を求める
From: Ken-ichiro Ueda
Date: Wed, 22 Apr 1998 00:00
Date: Wed, 22 Apr 1998 00:00
34 lines
2267 bytes
2267 bytes
Takeshi Shigihara wrote: > > Ken-ichiro Ueda wrote: > > > > アルゴリズム本などに、ブレゼンハムという人が考えたDDAという > > アルゴリズムがあると思いますので、探してみてください。書籍では > > Cによるアルゴリズム辞典だかという本にのっていたはずです。 > > > > DDA(Digital Differential Analiser)ってのはつまるところ、傾きによ > > って2点間に線を引いていくのですが、XとYの少数部を整数演算に > > よって求めて、0.5で四捨五入していました。これで2点間にドットを > > 置いていき(描画はしなくてよ「)、ドットの数がラインの長さという事 > > になります。実は手元の書籍のどれかにあったと思うのですが、探す > > のが面倒なので書籍を当たってください。それくらいの努力はしても > > いいですよね。 > > DDAを利用する方法は、ちと疑問に思います。 > 直線を引くために最適化されたDDAでは、XもしくはYの長いほうの > 距離に対して、それが1つ変化した時に短い方の変数が1変化するかどう > かを調べることになりかねません。つまり、ドットの数は、長いほうの > 距離となってしまう恐れがあります。 > > 平方根のニュートン法などを利用して、計算したほうが良いと思います。 > > ----- Takeshi Shigihara > Office cygnus@masternet.or.jp > Home cygnus@po.jah.ne.jp ----- おっしゃることはわかるのですが、長いほうの距離=ドットの数だと 直線にすきまができてしまうような気が。直線を引くという命題から すると、ちょっと最適化しすぎのような気がします。もっとも、こちら としては最初から高精度を前提に考えていませんでしたし、もっと 精度のよいロジックが提案されていますので素直に撤回します。
Technical Details
Message-ID:
<353CF9D8.42774B03@pluto.dti.ne.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6hdaib$chb$1@news1.kcom.ne.jp> <353A4B04.7439F598@pluto.dti.ne.jp> <353ABF24.9BB9C609@masternet.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,5e6daae5d04bdee4 X-Google-Attributes: gid106434,public From: Ken-ichiro Ueda <ueken@pluto.dti.ne.jp> Subject: Re: 2点間の距離を求める Date: 1998/04/22 Message-ID: <353CF9D8.42774B03@pluto.dti.ne.jp> X-Deja-AN: 346404077 Content-Transfer-Encoding: 7bit References: <6hdaib$chb$1@news1.kcom.ne.jp> <353A4B04.7439F598@pluto.dti.ne.jp> <353ABF24.9BB9C609@masternet.or.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Organization: Dream Train Internet Newsgroups: fj.lang.c