🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.c
Article #377

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

#377
From: yellow
Date: Thu, 23 Apr 1998 00:00
47 lines
2649 bytes
<6hk7ie$3if@news.kyosai.or.jp>の記事において
sugihara@kyosai.or.jpさんは書きました。

>> sugiharaです。
>> 
>> kuno@gssm.otsuka.tsukuba.ac.jp wrote in message
>> <6hjbaa$sf8@utogw.gssm.otsuka.tsukuba.ac.jp>...
>> >
>> >  (y*y)/(r*r) とか (x*x)/(r*r) と sin、cos の対応表を予め計算し
>> >ておいて表を引くだけにしたらいいんじゃないですか?
>> >
>> > 4096項目ずつでいいわけですし
>> 
>> この方法はメモリを消費するので、あまりやりたくないです。最終的にメモリに空き
>> が残っていたときに試してみます。
(以下略)

  結局、回転変換に関する行列計算を行いたいわけなんですよね?

  で、久野さんがおっしゃる、あらかじめ表を作っておくというの
が良いように思います。メモリの節約をするなら「表+計算」とい
う形で実現するのはどうでしょう。

  0-2*PI[rad] を 0-4096 で表現するとして、sin,cos の表は4096
要素で作った方が早いのでしょうが、減らすことはできます。高校
レベルの数学で、
  1、cos(th)=sin(th+PI/4)
  2、cos(th)=-cos(th+PI/2)
      sin(th)=-sin(th+PI/2)
  3、sin(th1+th2) = sin(th1)*cos(th2)+cos(th1)*sin(th2)
      cos(th1+th2) = sin(th1)*sin(th2)+cos(th1)*cos(th2)
などが分かると思います。

  1と2を使うと、表自体は sin(0) から sin(PI/2)までを用意し
て、あとはいろいろ操作してやればいいわけです。
  また、3を使うと、例えば0-4096表現で、奇数ぶんを用意してお
いて、(偶数)=(奇数)+1 だから、乗算2回、加算1回で対応できま
すね。
  他にも、3の応用として sin(th*2)を th を使って表現する公式
なんかもありますし、表はもっと小さいサイズにすることができる
でしょう。

--
寺元郁博(TERAMOTO,Ikuhiro)
mailto:yellow@ecopolis.sk.tsukuba.ac.jp
http://ecopolis.sk.tsukuba.ac.jp/~yellow/index_j.html
Technical Details
Message-ID: <6hma7a$9n5@ipps.sk.tsukuba.ac.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <6hdaib$chb$1@news1.kcom.ne.jp> <6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp> <6hhoop$flo$1@tequila.rel.crl.fujixerox.co.jp> <6hijrs$195$1@news1.kcom.ne.jp> <6hjbaa$sf8@utogw.gssm.otsuka.tsukuba.ac.jp> <6hk7ie$3if@news.kyosai.or.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 106434,5e6daae5d04bdee4
X-Google-Attributes: gid106434,public
From: yellow@ecopolis.sk.tsukuba.ac.jp
Subject: Re: 2点間の距離を求める
Date: 1998/04/23
Message-ID: <6hma7a$9n5@ipps.sk.tsukuba.ac.jp>
X-Deja-AN: 346853375
References: <6hdaib$chb$1@news1.kcom.ne.jp> <6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp> <6hhoop$flo$1@tequila.rel.crl.fujixerox.co.jp> <6hijrs$195$1@news1.kcom.ne.jp> <6hjbaa$sf8@utogw.gssm.otsuka.tsukuba.ac.jp> <6hk7ie$3if@news.kyosai.or.jp>
Mime-Version: 1.0
X-Forwarded: by - (DeleGate/2.8.40)
Content-Type: text/plain; charset=ISO-2022-JP
Organization: Institute of Policy and Planning Sciences, Univ. of Tsukuba, JAPAN
Newsgroups: fj.lang.c