C言語関数:tan





C言語のページでは、次の内容を解説しております。
C言語の入門講座  C言語の文法を中心に、基本的な関数などの解説をしています。
C言語ケーススタディ  C言語での実践的なプログラミングについて解説をしています。
C言語の関数リファレンス  C言語で用意されている関数を解説しています。
C言語で3次元動画プログラム  C言語で3次元タートルグラフィックを使用した3次元の動画プログラムの作成例です。
C言語の検定試験  C言語の文法に関する検定試験を実施することができます。
C言語でゲーム作成  C言語を使用したゲームの作り方を解説したページも用意しております。



2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を協力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。




■tan
正接の計算

【分類】
数学関数

【書式】
double tan(double x);

【パラメータの型と説明】

パラメータ説明
double x

【機能説明】
x(ラジアン単位の角度)の正接(タンジェント)を返します。
xが-π/2やπ/2に非常に近いときは0を返します。

Study Cを使用している場合は、下記のようにコマンドラインから実行(exprコマンドを使用)して動作を確認することができます。

C:\StudyC\MyProg>expr tan(3.1415926535/4)
<double>1

C:\StudyC\MyProg>expr tan(3.1415926535/3)
<double>1.73205

1番目は、π/4(45度)で1になります。
2番目は、π/3(60度)で1.73205になります。

通常のコンパイラを使用する場合の使用例は下記になります(もちろんStudy CでもOKです)。

#include <stdio.h>

main()
{
        printf("%g\n", tan(3.1415926535/4));
        printf("%g\n", tan(3.1415926535/3));
}

実行結果は以下になります。

1
1.73205

今回の例では誤差が発生していませんが、浮動小数点関数やその計算では誤差が発生します。 浮動小数点の誤差とその対策についてはsin()関数を参照してください。

次のプログラムは、Study Cのサンプルプログラムのtan.cです。 プログラムを実行するとtan()関数のグラフを描画します。

#include <graph.h>

main()
{
        int     t;
        int     x, y, lx, ly;

        gl_openwin(-1, -1, 640, 400, 1);

        gl_line(0, 200, 639, 200, 1, 0, RGB(0, 255, 0));
        gl_line(320, 0, 320, 400, 1, 0, RGB(0, 255, 0));
        lx = ly = -1000;
        for(t = -320; t < 320; t++){
                x = t*5 + 320;
                y = -tan(t/10.0) * 150 + 200;
                if(lx != -1000 && ly != -1000){
                        if(!(ly < 0 && y > 400))
                                gl_line(lx, ly, x, y, 1, 0, RGB(255, 255, 255));
                }
                lx = x;
                ly = y;
        }
}

このサンプルプログラムを実行すると次のようなグラフが表示されます。
tan関数のグラフ

【参照関数】
asin
acos
atan
atan2
sin
cos
sinh
cosh
tanh