三角関数のテーブル化

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
少年X

三角関数のテーブル化

#1

投稿記事 by 少年X » 15年前

三角関数のテーブル化について悩んでいます。
for(i=0;i<360;i++)Sin=sin(PI/180*i);  //cosの計算時に[/url]内を+90する
のようにしましたが問題点として、

1、Sinを呼ぶときにiは整数なので、ラジアンの場合(実数)困る。具体的には龍神録では角度をatan2で求めて
  いるのでうまくいかない。atan2に180/πをかけてint型にしたけれど、あまり良くない・・・
2、atan2のテーブル化がわからない

簡単にまとめると配列よりもポインタでやる方がいいのだけれど、やり方がわかりません。教えてください。
Googleで調べてもよくわかりませんでした・・・

kazuoni

Re:三角関数のテーブル化

#2

投稿記事 by kazuoni » 15年前

> atan2に180/πをかけてint型にしたけれど、あまり良くない・・・

あまりよくないとは?
満足いかないということですか?
正当な方法かとは思いますが。


> atan2のテーブル化
sinのテーブル化同様にすればよいのでは?
っといっても、|±PI/2|になるのは無限大なので、ある値を超えたら
PI/2とするように調節する(有限長でテーブル化する)事が必要でしょうね。

> 配列よりもポインタでやる方がいいのだけれど
この一文がとても不可解です。
もう少し追記をよろしくお願いします。

Justy

Re:三角関数のテーブル化

#3

投稿記事 by Justy » 15年前

>ラジアンの場合(実数)困る
 ラジアンな角度をX倍してから整数化すればいいのでは?
 Xが幾つなのは、テーブルがどれだけあるのかで変わってきますが。


 あと、今の段階で言っても詮無いことですが、工夫すればテーブルは1周360度分ではなく
90度分だけあれば足りますよ。

少年X

Re:三角関数のテーブル化

#4

投稿記事 by 少年X » 15年前

過去記事でも同じなおようがあり、ある程度解決しました。

でも、いろいろと修正する点があるので、もしわかんなかったら質問します。

少年X

Re:三角関数のテーブル化

#5

投稿記事 by 少年X » 15年前

先人の知恵を持って解決しました。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る