> 数学が基本的に苦手でして特に図形の角度や面積を求める問題等がかなり苦手なので
> テーブル化についてググリましたが仕組みがよくわかりません。
ということでしたので、一応テーブルが作れるプログラムを作ってみました。
といってもループして表示しているだけです。
NUMの数を変えれば好きな要素数のテーブルが出来ます。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926535
#define NUM 100
int main(){
int i;
{//サイン
printf("float TableSin[ %d ] = {\n\t", NUM);
for( i=0; i<NUM; i++ ){
printf("%10.7f", sin(PI*2/NUM*i));
if( i != NUM-1 ){
printf(",");
}
if( i%10 == 9 ){
printf("\n\t");
}
}
printf("\n};\n");
}
{//コサイン
printf("float TableCos[ %d ] = {\n\t", NUM);
for( i=0; i<NUM; i++ ){
printf("%10.7f", cos(PI*2/NUM*i));
if( i != NUM-1 ){
printf(",");
}
if( i%10 == 9 ){
printf("\n\t");
}
}
printf("\n};\n");
}
{//タンジェント
printf("float TableTan[ %d ] = {\n\t", NUM);
for( i=0; i<NUM; i++ ){
printf("%10.7f", tan(PI*2/NUM*i));
if( i != NUM-1 ){
printf(",");
}
if( i%10 == 9 ){
printf("\n\t");
}
}
printf("\n};\n");
}
return 0;
}
出力結果
float TableSin[ 100 ] = {
0.0000000, 0.0627905, 0.1253332, 0.1873813, 0.2486899, 0.3090170, 0.3681246, 0.4257793, 0.4817537, 0.5358268,
0.5877853, 0.6374240, 0.6845471, 0.7289686, 0.7705132, 0.8090170, 0.8443279, 0.8763067, 0.9048271, 0.9297765,
0.9510565, 0.9685832, 0.9822873, 0.9921147, 0.9980267, 1.0000000, 0.9980267, 0.9921147, 0.9822873, 0.9685832,
0.9510565, 0.9297765, 0.9048271, 0.8763067, 0.8443279, 0.8090170, 0.7705132, 0.7289686, 0.6845471, 0.6374240,
0.5877853, 0.5358268, 0.4817537, 0.4257793, 0.3681246, 0.3090170, 0.2486899, 0.1873813, 0.1253332, 0.0627905,
0.0000000,-0.0627905,-0.1253332,-0.1873813,-0.2486899,-0.3090170,-0.3681246,-0.4257793,-0.4817537,-0.5358268,
-0.5877853,-0.6374240,-0.6845471,-0.7289686,-0.7705132,-0.8090170,-0.8443279,-0.8763067,-0.9048271,-0.9297765,
-0.9510565,-0.9685832,-0.9822873,-0.9921147,-0.9980267,-1.0000000,-0.9980267,-0.9921147,-0.9822873,-0.9685832,
-0.9510565,-0.9297765,-0.9048271,-0.8763067,-0.8443279,-0.8090170,-0.7705132,-0.7289686,-0.6845471,-0.6374240,
-0.5877853,-0.5358268,-0.4817537,-0.4257793,-0.3681246,-0.3090170,-0.2486899,-0.1873813,-0.1253332,-0.0627905
};
float TableCos[ 100 ] = {
1.0000000, 0.9980267, 0.9921147, 0.9822873, 0.9685832, 0.9510565, 0.9297765, 0.9048271, 0.8763067, 0.8443279,
0.8090170, 0.7705132, 0.7289686, 0.6845471, 0.6374240, 0.5877853, 0.5358268, 0.4817537, 0.4257793, 0.3681246,
0.3090170, 0.2486899, 0.1873813, 0.1253332, 0.0627905, 0.0000000,-0.0627905,-0.1253332,-0.1873813,-0.2486899,
-0.3090170,-0.3681246,-0.4257793,-0.4817537,-0.5358268,-0.5877853,-0.6374240,-0.6845471,-0.7289686,-0.7705132,
-0.8090170,-0.8443279,-0.8763067,-0.9048271,-0.9297765,-0.9510565,-0.9685832,-0.9822873,-0.9921147,-0.9980267,
-1.0000000,-0.9980267,-0.9921147,-0.9822873,-0.9685832,-0.9510565,-0.9297765,-0.9048271,-0.8763067,-0.8443279,
・・・・
ただ、図形の角度や面積の求め方が解らないということなので、
テーブル化よりも先に基本的な数学についておさらいした方が良い気がします。
特に角度に関する知識が無いとSTG制作は少し厳しいです。
また、三平方の定理(ピタゴラスの定理)は良く使いますし、
こればベジェ曲線や物理の力学の方程式なども使うでしょう。
テーブル化をしようと思っていらっしゃるのであればsinやcosの理屈はOKですか?
例えば「2.0ラジアンの方向に速度10で飛んでいる弾のX移動成分はいくつですか」と聞かれたら解りますか?
もし解らないけど、作りたいという事であれば関数をブラックボックス化して考えて作るということも可能ですが、応用が厳しくなってくると思います。