🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.c
Article #370

Re: 2点間の距離を求める

#370
From: Ken-ichiro Ueda
Date: Wed, 22 Apr 1998 00:00
34 lines
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-mail
References: <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