🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.c
Article #355

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

#355
From: Sugihara Yoshimi
Date: Mon, 20 Apr 1998 00:00
45 lines
2594 bytes
sugiharaです。


Ken-ichiro Ueda wrote in message <353A4B04.7439F598@pluto.dti.ne.jp>...

>アルゴリズム本などに、ブレゼンハムという人が考えたDDAという
>アルゴリズムがあると思いますので、探してみてください。書籍では
>Cによるアルゴリズム辞典だかという本にのっていたはずです。

 これは真っ先に思い付いたのですが、「点を打った数 = 2点間の距離」とはなら
ないと思ったのですが・・・
 たとえば (0,0)-(40,30) という直線と (0,0)-(40,10)
という直線を考えたとき、2点間の距離は 50 と 41(少数を四捨五入)となる
はずですが、DDAだと両方とも40(X軸の距離)となると思うのです。


kuno@gssm.otsuka.tsukuba.ac.jp wrote in message

>> アルゴリズム本などに、ブレゼンハムという人が考えたDDAというア
>> ルゴリズムがあると思いますので、探してみてください。書籍ではC
>> によるアルゴリズム辞典だかという本にのっていたはずです。
>
>  しかしこの場合、それよりも(dx = x1 - x2, dy = y1 - y2として)
>
>    r*r <= dx*dx + dy*dy < (r+1)*(r+1)
>
>なるrを2分探索で求める方が速くないでしょうか。だいたい距離に比例
>してよいんなら(dxがdyより小さいとして)rをdyからdx+dyまで1つずつ
>変化させてしらみつぶしに探すのがいちばん簡単だったりして。


これは簡単そうでよさそうですね。試してみます。



nide@ics.nara-wu.ac.jp wrote in message <6hectf$h6j@ns.h.kyoto-u.ac.jp>...

>  非負整数の平方根をニュートン法で整数部だけ求めるという方法でも良いか
>もしれません。これなら整数の加減乗除と比較だけで済みますし。ありうる問
>題は、二乗を計算することによるオーバーフローですが、画面上の2点の距離
>を求める用途ならこの問題は考えなくとも良さそうですね。


ニュートン法ですね。調べてみます。
Technical Details
Message-ID: <6hegfs$l42@news.kyosai.or.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <6hdaib$chb$1@news1.kcom.ne.jp><353A4B04.7439F598@pluto.dti.ne.jp><6he38n$3ln@utogw.gssm.otsuka.tsukuba.ac.jp> <6hectf$h6j@ns.h.kyoto-u.ac.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 106434,5e6daae5d04bdee4
X-Google-Attributes: gid106434,public
From: "Sugihara Yoshimi" <sugihara@kyosai.or.jp>
Subject: Re2: 2点間の距離を求める
Date: 1998/04/20
Message-ID: <6hegfs$l42@news.kyosai.or.jp>
X-Deja-AN: 345834259
Content-Transfer-Encoding: 7bit
References: <6hdaib$chb$1@news1.kcom.ne.jp><353A4B04.7439F598@pluto.dti.ne.jp><6he38n$3ln@utogw.gssm.otsuka.tsukuba.ac.jp> <6hectf$h6j@ns.h.kyoto-u.ac.jp>
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-2022-jp"
X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3
Organization: HIROSHIMAKEN CHUSYOKIGYO KYOSAI coop.,
Newsgroups: fj.lang.c