QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 0人
オーナーへメッセージ
slMame › 一日一膳腹八分目 › 忘れない為に。。 › PIの比較で90度と270度を切り分けるには・・
2009年08月09日

PIの比較で90度と270度を切り分けるには・・

ループ処理で角度を加算している部分で、

単純に

if(Theta==PI*0.5) {} else if (Theta==PI*1.5) { }

では浮動小数点の比較でうまくいかない状態でした。


そこで、

if ((float)((string)(Theta*RAD_TO_DEG))==90.0) { }

の様に、いったん文字列にした後にfloatに戻して比較すると期待通りに動作しました。
また、PHPのround()関数の様な物を用意しておいて、任意ケタでいったん丸めてから比較してやると動きました。

型変換とどちらが良いのでしょうか。。。ちょっと不明。

もっとも、90度と270度を切り分けるなんて、めったに出てきませんが・・^^;



// www.lsleditor.org  by Alphons van der Heijden (SL: Alphons Jano)
float round(float a,integer p)
{
float t=llPow(10.0,p);
return llRound(a*t)/t;
}
test(float theta)
{
if (ceil(theta,6)==ceil(0.5*PI,6)) {
llSay(0, "0.5");
}else if (ceil(theta,6)==ceil(1.5*PI,6))
{
llSay(0, "1.5");
}
 
}
default
{
state_entry()
{
integer i=64;
float dtheta=2.0*PI/i;
float theta=0;
while(i--)
{
theta=dtheta*i;
test(theta);
}
}
}


同じカテゴリー(忘れない為に。。)の記事画像
パーティクル設定項目について
同じカテゴリー(忘れない為に。。)の記事
 他人が座っているプリムの情報取得/REZした物の情報取得 (2016-09-12 05:52)
 llCastRay()実装 (2011-09-21 20:59)
 Visual C# スキャナーから画像を取り込み (2011-01-08 22:56)
 lsl 乱数生成器 (2010-02-04 17:51)
 lslのlistで連想配列もどき・・ (2009-08-31 21:30)
 LSLコード色づけ~これはすごいですね (2009-08-08 11:52)

Posted by RBK Drachnyd(しお) at 17:19│Comments(0)忘れない為に。。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。