Article View: fj.lang.c
Article #349Re: 2点間の距離を求める
From: Ken-ichiro Ueda
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
37 lines
1990 bytes
1990 bytes
Sugihara Yoshimi wrote: > > 始めましてsugiharaといいます。 > > long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使わず > に求める方法はないでしょうか? > > このごろ FPUがついているのが当然なマシンばかりですが、現在開発しているマ > シン(マイコン)にはついていないのです。そして 浮動小数点を使うとやたら遅いの > で、何とかしなければならないのですが・・・ > > ちなみに以下のようなコードです。 > > x = px - qx > y = py - qy > > r = (long) sqrt( (double) ( (x*x) + (y*y) ) ) ・・・・sqrtを使う > と重たくなる。(;; > > て感じにしてます。 > > ご存知の方、ヒントだけでも良いので教えてください。 > > よろしくお願いします。 アルゴリズム本などに、ブレゼンハムという人が考えたDDAという アルゴリズムがあると思いますので、探してみてください。書籍では Cによるアルゴリズム辞典だかという本にのっていたはずです。 DDA(Digital Differential Analiser)ってのはつまるところ、傾きによ って2点間に線を引いていくのですが、XとYの少数部を整数演算に よって求めて、0.5で四捨五入していました。これで2点間にドットを 置いていき(描画はしなくてよい)、ドットの数がラインの長さという事 になります。実は手元の書籍のどれかにあったと思うのですが、探す のが面倒なので書籍を当たってください。それくらいの努力はしても いいですよね。
Technical Details
Message-ID:
<353A4B04.7439F598@pluto.dti.ne.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<6hdaib$chb$1@news1.kcom.ne.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/20 Message-ID: <353A4B04.7439F598@pluto.dti.ne.jp> X-Deja-AN: 345722110 Content-Transfer-Encoding: 7bit References: <6hdaib$chb$1@news1.kcom.ne.jp> Content-Type: text/plain; charset=iso-2022-jp Organization: Dream Train Internet Mime-Version: 1.0 Newsgroups: fj.lang.c