3: 2015-03-23 (月) 22:35:34 osinko Deleted an attach file: trigon1.png at 2015-03-23 (月) 19:49:58, Deleted an attach file: trigona_0.png at 2015-03-23 (月) 19:50:54, Deleted an attach file: 2dd687bd02294405f9e3b13f158ba9b9.png at 2015-03-23 (月) 19:57:30, Deleted an attach file: f251ae8248eb7f58752c4597e59b4629.png at 2015-03-23 (月) 19:57:32, Deleted an attach file: f4fffaa556cc1947882e537ec053c9dd.png at 2015-03-23 (月) 19:57:35, Deleted an attach file: 0cded19e12a181bf3e8388dbce4eb67e.png at 2015-03-23 (月) 19:57:37, Deleted an attach file: 78feedc804f38212694e84d9d5210330.png at 2015-03-23 (月) 19:57:38, Deleted an attach file: e1c2780d9457ca20ed35d48d38814082.png at 2015-03-23 (月) 19:57:41 |
4: 2015-03-24 (火) 01:11:09 osinko | ||
---|---|---|---|
Line 11: | Line 11: | ||
\(\sin { \theta } =\frac { 対辺 }{ 斜辺 } \quad ,\quad \cos { \theta } =\frac { 隣辺 }{ 斜辺 } \quad ,\quad \tan { \theta } =\frac { 対辺 }{ 隣辺 } \) | \(\sin { \theta } =\frac { 対辺 }{ 斜辺 } \quad ,\quad \cos { \theta } =\frac { 隣辺 }{ 斜辺 } \quad ,\quad \tan { \theta } =\frac { 対辺 }{ 隣辺 } \) | ||
この分数の関係式は頭文字の英語の筆記体の書き順で憶えると良い。分母のほうから辺の長さを割り当てる | この分数の関係式は頭文字の英語の筆記体の書き順で憶えると良い。分母のほうから辺の長さを割り当てる | ||
- | &font(Red){sin,cosは斜辺が母(分母)と憶える。これはベクトルで考えたとき正規化の際「1単位」となる}; | + | &font(Red){sin,cosは斜辺が母(分母)と憶える}; |
二つの角が同じ角度になる三角形同士は相似と言えるので、どんなに大きさが変わっても各辺の「比」は変わらない | 二つの角が同じ角度になる三角形同士は相似と言えるので、どんなに大きさが変わっても各辺の「比」は変わらない | ||
&ref(trigonb.png); | &ref(trigonb.png); | ||
比は変わらないので斜辺rの長さを基準としてsinθやcosθの長さが導き出される式へと変形できる | 比は変わらないので斜辺rの長さを基準としてsinθやcosθの長さが導き出される式へと変形できる | ||
- | &ref(2dd687bd02294405f9e3b13f158ba9b9.png); | + | |&ref(sincos2.png);|\(r\cos { \theta } =r\frac { x }{ r } \quad \quad \rightarrow \quad \quad x=r\cos { \theta } \\ r\sin { \theta } =r\frac { y }{ r } \quad \quad \rightarrow \quad \quad y=r\sin { \theta } \)| |
+ | たとえばθ=30°斜辺rの長さが3.5の時のxとyの長さを知りたいときunityで計算するには以下のようなコードになる | ||
+ | |||
+ | <unityのコード例> | ||
+ | #code(csharp){{ | ||
+ | using UnityEngine; | ||
+ | using System.Collections; | ||
+ | |||
+ | public class trigon1 : MonoBehaviour | ||
+ | { | ||
+ | void Start () | ||
+ | { | ||
+ | float r, theta, x, y; | ||
+ | r = 3.5f; | ||
+ | theta = 30 * Mathf.Deg2Rad; //°(単位度)からラジアンへ変換 | ||
+ | x = r * Mathf.Cos (theta); | ||
+ | y = r * Mathf.Sin (theta); | ||
+ | print ("r=" + r + " θ=" + theta + " x=" + x + " y=" + y); | ||
+ | } | ||
+ | } | ||
+ | }} | ||
+ | #hr | ||
+ | 出力 | ||
+ | r=3.5 θ=0.5235988 x=3.031089 y=1.75 | ||
+ | #hr | ||
tanθは一次関数式の傾きとしても取り扱える | tanθは一次関数式の傾きとしても取り扱える | ||
&ref(e1c2780d9457ca20ed35d48d38814082.png); | &ref(e1c2780d9457ca20ed35d48d38814082.png); | ||
Line 25: | Line 49: | ||
通常、角はギリシャ文字θ(シータ)を用いて表される。aを°によるオイラー角度とするとラジアンを求める式は以下になる | 通常、角はギリシャ文字θ(シータ)を用いて表される。aを°によるオイラー角度とするとラジアンを求める式は以下になる | ||
&ref(78feedc804f38212694e84d9d5210330.png); | &ref(78feedc804f38212694e84d9d5210330.png); | ||
- | 基本的にLの長さによる&font(Red){単位の無い実数となり y=cos(x)等の実数の関数式に対して比の値として扱える事になる};(だから三角関数に対してラジアンが利用される)。unityでMathf.sin関数に喰わせる引数もラジアンでありオイラー角ではないので注意。また相互変換には上記の式を利用すると便利だが\(\frac { \pi }{ 180 } \)は定数なのでunityには[[Mathf.Deg2Rad:http://docs.unity3d.com/ja/current/ScriptReference/Mathf.Deg2Rad.html]]などの専用のプロパティが用意されている。以下の章のサンプルコードで利用している | + | 基本的にLの長さによる&font(Red){単位の無い実数となり y=cos(x)等の実数の関数式に対して比の値として扱える事になる};(だから三角関数に対してラジアンが利用される)。unityでMathf.sin関数に喰わせる引数もラジアンでありオイラー角ではないので注意。また相互変換には上記の式を利用すると便利だが\(\frac { \pi }{ 180 } \)は定数なのでunityには[[Mathf.Deg2Rad:http://docs.unity3d.com/ja/current/ScriptReference/Mathf.Deg2Rad.html]]などの専用のプロパティが用意されている |
**三角関数の定義 [#s4879201] | **三角関数の定義 [#s4879201] | ||
ラジアンと単位円、三角比を用いた三角関数の定義。原点を中心とした半径1の円周上にあってx軸正の方向から反時計回りにラジアン角θを取った座標位置を(cosθ,sinθ)とする。この定義よりθはオイラー角90°を超える角度が扱える事となる。三角形OABは常に直角三角形になるので「三角比」の考えと同時に「三平方の定理」が適用できる(尚、半径1の円を単位円と呼ぶ) | ラジアンと単位円、三角比を用いた三角関数の定義。原点を中心とした半径1の円周上にあってx軸正の方向から反時計回りにラジアン角θを取った座標位置を(cosθ,sinθ)とする。この定義よりθはオイラー角90°を超える角度が扱える事となる。三角形OABは常に直角三角形になるので「三角比」の考えと同時に「三平方の定理」が適用できる(尚、半径1の円を単位円と呼ぶ) | ||
&ref(0cded19e12a181bf3e8388dbce4eb67e.png); | &ref(0cded19e12a181bf3e8388dbce4eb67e.png); | ||
- | コード例: | + | このcos(x)とsin(x)をグラフで描くと以下の様な波のグラフになる |
- | #code(csharp){{ | + | &ref(sincos1.png); |
- | using UnityEngine; | + | この実際の値の動きを視覚的に確認できるプログラムを作りました。unity_webプレーヤーで実際に触って挙動を確認できます。ご参考にどうぞ |
- | using System.Collections; | + | [[三角関数プレーヤー_for_Unity:https://dl.dropboxusercontent.com/u/87271864/Math_sincosCurve/Math_sincosCurve.html]] |
- | + | ||
- | public class Rad1 : MonoBehaviour | + | |
- | { | + | |
- | void Start () | + | |
- | { | + | |
- | print (Method (30 * Mathf.Deg2Rad)); | + | |
- | } | + | |
- | + | ||
- | Vector2 Method (float theta) | + | |
- | { | + | |
- | return new Vector2 (Mathf.Cos (theta), Mathf.Sin (theta)); | + | |
- | } | + | |
- | } | + | |
- | }} | + | |
**負角、余角の公式 [#s9eafcd0] | **負角、余角の公式 [#s9eafcd0] |