Thread View: fj.lang.c
20 messages
20 total messages
Started by Sugihara Yoshimi
Mon, 20 Apr 1998 00:00
2点間の距離を求める
Author: Sugihara Yoshimi
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
23 lines
1244 bytes
1244 bytes
始めましてsugiharaといいます。
long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使わず
に求める方法はないでしょうか?
このごろ FPUがついているのが当然なマシンばかりですが、現在開発しているマ
シン(マイコン)にはついていないのです。そして 浮動小数点を使うとやたら遅いの
で、何とかしなければならないのですが・・・
ちなみに以下のようなコードです。
x = px - qx
y = py - qy
r = (long) sqrt( (double) ( (x*x) + (y*y) ) ) ・・・・sqrtを使う
と重たくなる。(;;
て感じにしてます。
ご存知の方、ヒントだけでも良いので教えてください。
よろしくお願いします。
Re: 2点間の距離を求める
Author: 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点間にドットを 置いていき(描画はしなくてよい)、ドットの数がラインの長さという事 になります。実は手元の書籍のどれかにあったと思うのですが、探す のが面倒なので書籍を当たってください。それくらいの努力はしても いいですよね。
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: kuno
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
19 lines
1224 bytes
1224 bytes
$B5WLn$G$9!#(B
ueken@pluto.dti.ne.jp$B$5$s(B:
> $B%"%k%4%j%:%`K\$J$I$K!"%V%l%<%s%O%`$H$$$&?M$,9M$($?(BDDA$B$H$$$&%"(B
> $B%k%4%j%:%`$,$"$k$H;W$$$^$9$N$G!"C5$7$F$_$F$/$@$5$$!#=q@R$G$O(BC
> $B$K$h$k%"%k%4%j%:%`<-E5$@$+$H$$$&K\$K$N$C$F$$$?$O$:$G$9!#(B
$B$7$+$7$3$N>l9g!"$=$l$h$j$b(B(dx = x1 - x2, dy = y1 - y2$B$H$7$F(B)
r*r <= dx*dx + dy*dy < (r+1)*(r+1)
$B$J$k(Br$B$r(B2$BJ,C5:w$G5a$a$kJ}$,B.$/$J$$$G$7$g$&$+!#$@$$$?$$5wN%$KHfNc(B
$B$7$F$h$$$s$J$i(B(dx$B$,(Bdy$B$h$j>.$5$$$H$7$F(B)r$B$r(Bdy$B$+$i(Bdx+dy$B$^$G(B1$B$D$:$D(B
$BJQ2=$5$;$F$7$i$_$D$V$7$KC5$9$N$,$$$A$P$s4JC1$@$C$?$j$7$F!#(B
$B$^$"$I$l$G$b$$$$$s$G$9$1$I(B $B5WLn(B
P.S. DDA$B$r$=$&$$$&$U$&$K;H$C$?>l9g8m:9$NN_@Q$C$F$J$$$s$G$7$g$&$+(B?
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: nide
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
7 lines
850 bytes
850 bytes
$BHsIi@0?t$NJ?J}:,$r%K%e!<%H%sK!$G@0?tIt$@$15a$a$k$H$$$&J}K!$G$bNI$$$+(B $B$b$7$l$^$;$s!#$3$l$J$i@0?t$N2C8:>h=|$HHf3S$@$1$G:Q$_$^$9$7!#$"$j$&$kLd(B $BBj$O!"Fs>h$r7W;;$9$k$3$H$K$h$k%*!<%P!<%U%m!<$G$9$,!"2hLL>e$N(B2$BE@$N5wN%(B $B$r5a$a$kMQES$J$i$3$NLdBj$O9M$($J$/$H$bNI$5$=$&$G$9$M!#(B nide@ics.nara-wu.ac.jp
Re: 2点間の距離を求める
Author: Takeshi Shigihara
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
26 lines
1886 bytes
1886 bytes
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 -----
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Seiji Suzuki
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
46 lines
2112 bytes
2112 bytes
In article <6hdaib$chb$1@news1.kcom.ne.jp>
sugihara@mb.kcom.ne.jp writes:
>> $B#l#o#n#g7?$G$"$i$o$5$l$?:BI8!J#x!"#y!K$G!"#2E@4V$N5wN%$rIbF0>.?tE@$r;H$o$:(B
>> $B$K5a$a$kJ}K!$O$J$$$G$7$g$&$+!)(B
$B%K%e!<%H%s$[$*$%$C$H=q$3$&$H$7$?$s$G$9$,!"$"$l$OHyJ,$GJ?J}:,$,$$$j$^(B
$B$7$?$M!#$=$l$J$i!"AGD>$K3+J?J}$7$F$O$$$+$,$G$7$g$&!#(B10 $B?J?t$N3+J?J}$H(B
$B0c$C$F!"(B2 $B?J$N3+J?J}$O$H$C$F$b4JC1$G$9!#$A$g$C$HAH$s$G$_$^$7$?$N$G!"(B
$B%G%P%C%0$H:GE,2=$O$=$A$i$G$d$C$F2<$5$$!#(B
#include <stdio.h>
#include <stdlib.h>
#define BIT_PER_BYTE 8 /* 1 byte $B$"$?$j$N%S%C%H?t(B */
#define OP_SHIFT 2 /* 2 $B%S%C%H$:$D2r7h$9$k$+$i(B */
#define BITMASK 3 /* 2 $B%S%C%H$N%^%9%/(B */
int sqrint( int operation ){
int answer = 0; /* $BEz$((B */
int left = 0; /* $B:8$N%T%i%_%C%I$N>e$N?t(B */
int right = 0; /* $B1&$N%T%i%_%C%I$N0z$-;;$7$??t(B */
int i;
for( i = sizeof(operation)*BIT_PER_BYTE; i > 0; i -= OP_SHIFT ){
answer <<= 1;
right <<= OP_SHIFT;
right += ((operation >> (i-OP_SHIFT)) & BITMASK); /* $B$*$m$9(B */
left <<= 1;
if( left+1 <= right ){ /* 1 $B$,N)$F$i$l$k$+$I$&$+(B */
answer += 1;
right -= left+1; /* 10 $B?J$J$i3]$1;;$r$9$k$H$3$m(B */
left += 2; /* $B:8$N%T%i%_%C%I$r99?7$9$k(B */
}
}
return answer;
}
int main( int argc, char *argv[] ){
printf( "sqrt(%d) ~= %d\n" , atoi( argv[1] ), sqrint( atoi( argv[1] )));
return 0;
}
$B$A$J$_$K!"Ii$N?t$G$b$H$K$+$/Ez$($r=P$9!"$H$$$&$N$H!"Ez$($N>.?tE@0J2<$r@Z$j(B
$B<N$F$k$H$$$&$N$O%P%0$G$O$J$/;EMM$G$9!#(B
Re: 2点間の距離を求める
Author: Sugihara Yoshimi
Date: Mon, 20 Apr 1998 00:00
Date: Mon, 20 Apr 1998 00:00
38 lines
1668 bytes
1668 bytes
sugiharaです。
Seiji Suzuki wrote in message
<6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp>...
>>> long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使
わず
>>> に求める方法はないでしょうか?
>
> ニュートンほおぅっと書こうとしたんですが、あれは微分で平方根がいりま
>したね。それなら、素直に開平方してはいかがでしょう。10 進数の開平方と
>違って、2 進の開平方はとっても簡単です。ちょっと組んでみましたので、
>デバッグと最適化はそちらでやって下さい。
>
>#include <stdio.h>
>
> 中略
>
>int main( int argc, char *argv[] ){
> printf( "sqrt(%d) ~= %d\n" , atoi( argv[1] ),
sqrint( atoi( argv[1] )));
> return 0;
>}
>
> ちなみに、負の数でもとにかく答えを出す、というのと、答えの小数点以下を切り
>捨てるというのはバグではなく仕様です。
さっそくやってみました。
コードはそのままを遣わせていただきました。
おお!!はやい!!
これなら十分です。
本当にありがとうございました。
Re: 2点間の距離を求める
Author: Sugihara Yoshimi
Date: Tue, 21 Apr 1998 00:00
Date: Tue, 21 Apr 1998 00:00
42 lines
1873 bytes
1873 bytes
sugiharaです。
Seiji Suzuki wrote in message
<6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp>...
>In article <6hdaib$chb$1@news1.kcom.ne.jp>
>sugihara@mb.kcom.ne.jp writes:
>
>>> long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使
わず
>>> に求める方法はないでしょうか?
>
> ニュートンほおぅっと書こうとしたんですが、あれは微分で平方根がいりま
>したね。それなら、素直に開平方してはいかがでしょう。10 進数の開平方と
>違って、2 進の開平方はとっても簡単です。ちょっと組んでみましたので、
>デバッグと最適化はそちらでやって下さい。
>
>#include <stdio.h>
>#include <stdlib.h>
>
>#define BIT_PER_BYTE 8 /* 1 byte あたりのビット数 */
>#define OP_SHIFT 2 /* 2 ビットずつ解決するから */
>
> 中略
>
>int main( int argc, char *argv[] ){
> printf( "sqrt(%d) ~= %d\n" , atoi( argv[1] ),
sqrint( atoi( argv[1] )));
> return 0;
>}
>
> ちなみに、負の数でもとにかく答えを出す、というのと、答えの小数点以下を切り
>捨てるというのはバグではなく仕様です。
やってみました。
おお!!速い!!
コードはそのまま使わせていただきました。
ありがとうございました。
Re: 2点間の距離を求める
Author: Hiroyoshi Tanimoto
Date: Tue, 21 Apr 1998 00:00
Date: Tue, 21 Apr 1998 00:00
18 lines
1135 bytes
1135 bytes
Sugihara Yoshimi wrote: > long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使わず > に求める方法はないでしょうか? ヒントにはなるかな? > x = px - qx > y = py - qy > r = (long) sqrt( (double) ( (x*x) + (y*y) ) ) r*r >= x*x + y*y を満足する負でない最小のrを二分法で探す。 x*xなどを計算するときにはオーバーフローに注意して下さい。 しかしdoubleを使う方が早いかもしれない... -- Hiroyoshi Tanimoto @ Toshiba Corp. Advanced Microelectronics Center E-Mail: tanimoto@amc.toshiba.co.jp
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Seiji Suzuki
Date: Tue, 21 Apr 1998 00:00
Date: Tue, 21 Apr 1998 00:00
11 lines
1037 bytes
1037 bytes
In article <6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp>
$B<+J,(B writes:
>> $B%K%e!<%H%s$[$*$%$C$H=q$3$&$H$7$?$s$G$9$,!"$"$l$OHyJ,$GJ?J}:,$,$$$j$^(B
>> $B$7$?$M!#$=$l$J$i!"AGD>$K3+J?J}$7$F$O$$$+$,$G$7$g$&!#(B10 $B?J?t$N3+J?J}$H(B
$B<+8J%U%)%m!<$G$9!#(B2 $B>h$r;H$($P$h$$$N$G$7$?!#B.$$>h;;L?Na$N$"$k%A%C%W$J$i(B
$B%K%e!<%H%sK!$NJ}$,3+J?J}$h$jB.$$$h$&$J5$$,$7$^$9!#$G$b$b$C$HB.$$$N$O(B
$BJ?J}:,$r5a$a$J$$;v$G$9$M!#2?$K;H$&$N$+J,$+$i$J$$$N$G2?$H$b8@$($^$;$s$,!"(B
$B5wN%$N(B 2 $B>h$N$^$^8e$KB3$/7W;;$r?J$a$i$l$^$;$s$+(B?
Re: 2点間の距離を求める
Author: Sugihara Yoshimi
Date: Tue, 21 Apr 1998 00:00
Date: Tue, 21 Apr 1998 00:00
36 lines
1664 bytes
1664 bytes
sugiharaです。
Seiji Suzuki wrote in message
<6hekgm$ojc$1@tequila.rel.crl.fujixerox.co.jp>...
>>> long型であらわされた座標(x、y)で、2点間の距離を浮動小数点を使
わず
>>> に求める方法はないでしょうか?
>
> ニュートンほおぅっと書こうとしたんですが、あれは微分で平方根がいりま
>したね。それなら、素直に開平方してはいかがでしょう。10 進数の開平方と
>違って、2 進の開平方はとっても簡単です。ちょっと組んでみましたので、
>デバッグと最適化はそちらでやって下さい。
>
>#include <stdio.h>
>
> 中略
>
>int main( int argc, char *argv[] ){
> printf( "sqrt(%d) ~= %d\n" , atoi( argv[1] ),
sqrint( atoi( argv[1] )));
> return 0;
>}
>
> ちなみに、負の数でもとにかく答えを出す、というのと、答えの小数点以下を切り
>捨てるというのはバグではなく仕様です。
さっそくやってみました。
コードはそのままを遣わせていただきました。
おお!!はやい!!
これなら十分です。
本当にありがとうございました。
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: kuno
Date: Tue, 21 Apr 1998 00:00
Date: Tue, 21 Apr 1998 00:00
13 lines
1099 bytes
1099 bytes
$B5WLn$G$9!#(B sugihara@mb.kcom.ne.jp$B$5$s(B: > $B2sE>9TNs$NMWAG$O8GDj>.?tE@(B(1.0=4096$B$H$7$F$$$k(B)$B$H$$$&J}K!$G$&$^(B > $B$/@Z$jH4$1$k$3$H$,$G$-$?$N$G$9$,!"2sE>9TNs$K@_Dj$9$kMWAG$N(Bsin > $B$H(Bcos$B$O(B y/r $B$H(B x/r $B$G5a$a$k$7$+;W$$Ev$?$i$J$+$C$?$N$G!"$I$&$7(B > $B$F$b(B r (2$BE@4V$N5wN%(B)$B$,I,MW$J$N$G$9!#(B (y*y)/(r*r) $B$H$+(B (x*x)/(r*r) $B$H(B sin$B!"(Bcos $B$NBP1~I=$rM=$a7W;;$7(B $B$F$*$$$FI=$r0z$/$@$1$K$7$?$i$$$$$s$8$c$J$$$G$9$+(B? 4096$B9`L\$:$D$G$$$$$o$1$G$9$7(B $B5WLn(B
Re: 2点間の距離を求める
Author: 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 ----- おっしゃることはわかるのですが、長いほうの距離=ドットの数だと 直線にすきまができてしまうような気が。直線を引くという命題から すると、ちょっと最適化しすぎのような気がします。もっとも、こちら としては最初から高精度を前提に考えていませんでしたし、もっと 精度のよいロジックが提案されていますので素直に撤回します。
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Seiji Suzuki
Date: Wed, 22 Apr 1998 00:00
Date: Wed, 22 Apr 1998 00:00
17 lines
1415 bytes
1415 bytes
In article <6hijrs$195$1@news1.kcom.ne.jp> sugihara@mb.kcom.ne.jp writes: >> $B$H$3$m$G!"%K%e!<%H%sK!$G#2>h$N$r;H$&$N$G$7$g$&$+!)%K%e!<%H%sK!$G$O3d$j;;$,7k(B >> $B9==P$F$/$k$_$?$$$G$9$,!"#2>h$r;H$&$H$3$m$OFbMF$K;W$&$N$G$9$,!&!&!&(B $B$O$$!#$^$A$,$$$G$9!#A4A3JL$NJ*$H4*0c$$$7$^$7$?!#(B $B$H$3$m$G!"JL$NJ}$+$i$b$C$HB.$$1i;;%k!<%A%s$r65$($F$b$i$C$?$s$G$9$,!"(B $B8x3+$7$F$$$$$N$+$J(B? $B;d$N$O(B SS10 50MHz $B$G(B 30$B&L(Bs $BDxEY$@$C$?$N$G$9$,!"(B $B65$($F$b$i$C$?$N$O(B 17$B&L(Bs $BDxEY$^$G=P$^$9!#(Balpha axp 500MHz $B$G<B9T(B $B$9$k$H2?$H(B 460ns $B$GEz$($,JV$C$FMh$^$7$?!#(B $B$A$J$_$K!"$7$P$i$/A0$N!V%H%i%s%8%9%?5;=Q!W$G(B sqrt( x*x + y*y ) $B$r(B $B9bB.$K5a$a$k%3%s%F%9%H$,$"$j$^$7$?!#<j85$KL5$$$N$G$9$,!"3N$+(B 2 $BG/(B $B$0$i$$A0$G$9!#(B($B$b$C$H$b%O!<%I%&%'%"$G5a$a$k$N$,%a%$%s$G$9$,!#(B)
Re: 2点間の距離を求める
Author: yellow
Date: Thu, 23 Apr 1998 00:00
Date: Thu, 23 Apr 1998 00:00
47 lines
2649 bytes
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
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Kaoru MAEDA
Date: Thu, 23 Apr 1998 00:00
Date: Thu, 23 Apr 1998 00:00
21 lines
1542 bytes
1542 bytes
$BA0ED(B@$B%j%3!<$G$9!#(B > $B#l#o#n#g7?$G$"$i$o$5$l$?:BI8!J#x!"#y!K$G!"#2E@4V$N5wN%$rIbF0>.?tE@$r;H$o$:(B > $B$K5a$a$kJ}K!$O$J$$$G$7$g$&$+!)(B Metafont$B$N%=!<%9$r$"$?$C$F$_$^$7$g$&!#(Bx*x$B$d(By*y$B$,%*!<%P!<%U%m!<$9(B $B$k>l9g$G$b@5$7$/5a$a$i$l$k%"%k%4%j%:%`$,$N$C$F$$$^$9!#(B $B$&$m$*$\$($J$N$G4V0c$C$F$$$k$+$b$7$l$^$;$s$,!"3N$+0J2<$N$h$&$J%"(B $B%k%4%j%:%`$@$C$?$H;W$$$^$9!#(B $B86E@(BO(0, 0)$B$HE@(BA(x, y)$B$KBP$7$F!"E@(BB(x, y/2)$B$r<h$j!"(B OB$B$K4X$7$F(BA$B$HBP>]$JE@(BA'$B$r<h$k$H!"(BOA==OA'$B$H$J$j$^$9!#(B $B$"$H$O!"(BOA''''$B$,(Bx$B<4$K==J,6a$/$J$k$^$G$/$jJV$7$^$9!#(B $BE@(BA$B$,Bh(B1$B>]8B$K$"$k$H$7$F!"E@(BB$B$O(BOA$B$H(Bx$B<4$NFsEyJ,@~$h$j>eB&$K$"$k$H(B $B$&$N$,%_%=$+$J!#(B ------------------------------- MadCat LRM15 $B""(B/$B!1(B\$B""(B LRM15 $BA0ED(B $B70(B maeda@src.ricoh.co.jp 75t 175km/h LG+ o"$B!C(B $B!C(B"o AFC100 ($B3t(B)$B%j%3!<(B $B%=%U%H%&%'%"8&5f=j(B HeatSink 14 Sm+ .=X$B!1(BX=. Sm+ ------------------------------- Armor 2025 _|_ _|_
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Masayuki Nakayama
Date: Thu, 23 Apr 1998 00:00
Date: Thu, 23 Apr 1998 00:00
21 lines
1040 bytes
1040 bytes
$BCf;3$H$b$&$7$^$9!#(B
>$B$H$3$m$G!"%K%e!<%H%sK!$G#2>h$N$r;H$&$N$G$7$g$&$+!)%K%e!<%H%sK!$G$O3d$j;;$,7k(B
>$B9==P$F$/$k$_$?$$$G$9$,!"#2>h$r;H$&$H$3$m$OFbMF$K;W$&$N$G$9$,!&!&!&(B
$B%K%e!<%H%sK!$G$"$l$P!"$?$H$($P!"<!$N$h$&$J7W;;$K$J$j$^$9$M!#(B
int
root(int x)
{
int r, d;
for (r = x; 0 < r && 0 < (d = (r - x / r) / 2); r -= d) {
}
return r;
}
Masayuki Nakayama Tel.053-523-1140 Ext.882-378 Fax.053-523-0257
Project Support Dept. Hosoe Factory Roland Corporation
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Kaoru MAEDA
Date: Thu, 23 Apr 1998 00:00
Date: Thu, 23 Apr 1998 00:00
11 lines
1066 bytes
1066 bytes
$BA0ED(B> $B$&$m$*$\$($J$N$G4V0c$C$F$$$k$+$b$7$l$^$;$s$,!"3N$+0J2<$N$h$&$J%"(B $BA0ED(B> $B%k%4%j%:%`$@$C$?$H;W$$$^$9!#(B $B$9$_$^$;$s!"B?J,(Blong$B$@$1$G$O7W;;$G$-$:!"8GDj>.?tE@$+$J$s$+$G(B $B$d$i$J$$$H$$$1$J$$%"%k%4%j%:%`$@$H;W$$$^$9!#(B ------------------------------- Vulture LRM20 .$B""(B||$B""(B. LRM20 $BA0ED(B $B70(B maeda@src.ricoh.co.jp 75t 175km/h Md+ o'$B""(B||$B""(B`o Md+ ($B3t(B)$B%j%3!<(B $B%=%U%H%&%'%"8&5f=j(B HeatSink 18 LG Sm+ .=X~~X=. Sm+ LG ------------------------------- Armor 2195 _|_ _|_
Re: $B#2E@4V$N5wN%$r5a$a$k(B
Author: Kaoru MAEDA
Date: Thu, 23 Apr 1998 00:00
Date: Thu, 23 Apr 1998 00:00
29 lines
1621 bytes
1621 bytes
$BA0ED(B@$B%j%3!<$G$9!#(B
$BA0ED(B> $B86E@(BO(0, 0)$B$HE@(BA(x, y)$B$KBP$7$F!"E@(BB(x, y/2)$B$r<h$j!"(B
$BA0ED(B> OB$B$K4X$7$F(BA$B$HBP>]$JE@(BA'$B$r<h$k$H!"(BOA==OA'$B$H$J$j$^$9!#(B
$BA0ED(B> $B$"$H$O!"(BOA''''$B$,(Bx$B<4$K==J,6a$/$J$k$^$G$/$jJV$7$^$9!#(B
0 <= y <= x $B$H$J$k$h$&$K(Bx,y$B$r%"%l%s%8(B
repeat
r = (y / x)
r *= r
r /= (4 + r) # (*)
x += 2 x r
y *= r
until y $B$,==J,>.$5$$(B
$B8GDj>.?tE@$G$d$k$N$,$$$$$G$7$g$&$M!#(B
(*)$B$N7W;;$,=*$C$?;~E@$G!"(B
r = y^2 / (4 x^2 + y^2) = (sin$B"\(BXOB)^2
($B$3$3$G(BX$B$O@5$N(Bx$B<4>e$NE@(B)$B$H$J$C$F$$$k$3$H$K5$$E$1$P!"(BA'$B$,(BOB$B$K4X$7(B
$B$F(BA$B$HBP>N$G$"$k$3$H$,$o$+$j$^$9!#(B
$B<}B+$bB.$$$N$G!"(B2$B!A(B3$B2s$N$/$jJV$7$G==J,$J@:EY$,=P$k$G$7$g$&!#(B
------------------------------- Thor q+-=$B!{(B+p. LRM15
$BA0ED(B $B70(B maeda@src.ricoh.co.jp 75t 143km/h Md+ d ||##|| @) LG
($B3t(B)$B%j%3!<(B $B%=%U%H%&%'%"8&5f=j(B HeatSink 28 EPPC / $B"&(B \ EPPC
------------------------------- Armor 2110 Sm+ $B!B(B $B!B(B Sm+
Re: Re: 2点間の距離を求める
Author: Hironobu Takahashi
Date: Fri, 24 Apr 1998 00:00
Date: Fri, 24 Apr 1998 00:00
25 lines
1582 bytes
1582 bytes
Sugihara Yoshimi <sugihara@mb.kcom.ne.jp> wrote:
>$B#1!K#P!$#Q$N#2E@$N:BI8$rF@$k!#(B
>$B#2!K#PE@$r86E@$H$7$F#QE@$NJ}8~$,#Y<4$N@5J}8~$K$J$k$h$&$J2sE>9TNs$r5a$a$k!#(B
>$B#3!K5a$a$?2sE>9TNs$G:BI8$rJQ49$7$J$,$i?^7A$rIA<L$9$k!#(B
>
>$B$G$9!#(B
>$B2sE>9TNs$NMWAG$O8GDj>.?tE@!J#1!%#0!a#4#0#9#6$H$7$F$$$k!K$H$$$&J}K!$G$&$^$/@Z(B
>$B$jH4$1$k$3$H$,$G$-$?$N$G$9$,!"(B
$B$3$l$J$s$@$1$I!"2<<j$K3d$j;;$r@h9T$7$F$d$k$h$j$b(B q-p $B$NCM$r(B
( dx, dy ) $B$H$9$k$J$i!"<!$N$h$&$KAGD>$K8e$G3d$j;;$7$?J}$,$h(B
$B$$$N$G$O(B?
1 dy, dx x - px px
--------- ( ) ( ) + ( )
|(dx,dy)| -dx, dy y - py py
2$B2s3d$j;;$,A}$($k$1$I!"@0?t$N1i;;$@$1$G$G$-$k$7!"7eMn$A$r$"(B
$B$^$j9M$($J$/$F$9$`$7!#Cm0U$9$k$N$O@0?t$N(B Overflow $B$@$1$K$G(B
$B$-$^$9$M!#(B
--
$B9b66M5?.(B($B$?$+$O$7$R$m$N$V(B): $B?7>pJs=hM}3+H/5!9=(B $B$D$/$P8&5f%;%s%?!<(B
E-mail: hironobu@trc.rwcp.or.jp or hironobu@tiny.or.jp
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads