三角関数のグラフ <C言語>
C言語には三角関数を計算する関数が用意されています。
したがって、y = sinxの正弦曲線を簡単に書くことができます。
<書式>
#include <math.h>
double sin(double x)
0度から360度までを20度刻みで
sin関数の引数に渡しています。
ただし、渡す値は度数ではなくラジアンです。
度数×円周率÷180
の計算式で、度数をラジアンに変換しています。
円周率はヘッダファイル(math.h)にM_PIとして定義されていることが多いです。
定義されていない場合はマクロで定義してください。
17 for (int i = 0; i <= 360; i = i+DEG){
18 radian = i*M_PI/180;
19 tmp = sin(radian);
20
21 y = (int) (tmp*10);
22
23 locate(x, 10-y);
24 printf("%s", "+");
25
26 x = x+2;
27 }
18 radian = i*M_PI/180;
19 tmp = sin(radian);
20
21 y = (int) (tmp*10);
22
23 locate(x, 10-y);
24 printf("%s", "+");
25
26 x = x+2;
27 }
サンプルコード
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <math.h>
4
5 #define locate(x,y) printf("\e[%d;%dH", y+1, x+1)
6 #define DEG 20
7
8 int main(void){
9
10 double radian = 0.0;
11 double tmp = 0.0;
12 int x = 0;
13 int y = 0;
14
15 system("clear");
16
17 for (int i = 0; i <= 360; i = i+DEG){
18 radian = i*M_PI/180;
19 tmp = sin(radian);
20
21 y = (int) (tmp*10);
22
23 locate(x, 10-y);
24 printf("%s", "+");
25
26 x = x+2;
27 }
28
29 locate(0,21);
30
31 return 0;
32 }
33
2 #include <stdlib.h>
3 #include <math.h>
4
5 #define locate(x,y) printf("\e[%d;%dH", y+1, x+1)
6 #define DEG 20
7
8 int main(void){
9
10 double radian = 0.0;
11 double tmp = 0.0;
12 int x = 0;
13 int y = 0;
14
15 system("clear");
16
17 for (int i = 0; i <= 360; i = i+DEG){
18 radian = i*M_PI/180;
19 tmp = sin(radian);
20
21 y = (int) (tmp*10);
22
23 locate(x, 10-y);
24 printf("%s", "+");
25
26 x = x+2;
27 }
28
29 locate(0,21);
30
31 return 0;
32 }
33
実行結果
コメント
コメントを投稿