人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下の記事にある、ソースのadvanceの関数ないの計算式が
理解できなかったので解説お願いします。
http://omiya6048.hatenablog.com/entry/2013/06/13/223946

上記URLに↓のような記述があるかと思います。
$coordinate->x = $coordinate->x + cos($degress * M_PI / 180) * $value;
$coordinate->y = $coordinate->y + sin($degress * M_PI / 180) * $value;
それぞれ、x座標とy座標の位置をだしているのかと思いますが、
この数式の解説が欲しいです。
どうぞよろしくお願い致します。

●質問者: FujiiRock
●カテゴリ:ウェブ制作 科学・統計資料
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Lhankor_Mhy
●200ポイント
$degress * M_PI / 180

この部分は度数からラジアン角への変換です。公式みたいなものなので覚えたり覚えなかったりしてください。
ラジアン - Wikipedia

cos($degress * M_PI / 180)

cosは三角関数です。
三角関数 - Wikipedia
wikipediaの直角三角形の図で考えると、cos(θ)で角度θ斜辺h=1の時のb、つまり原点から角度θで距離1進んだ時のx座標を求めることができます。

cos($degress * M_PI / 180) * $value

単純に積を取っていますから、原点から角度($degress * M_PI / 180)で距離$valueを進んだ時のx座標を求めることができます。

$coordinate->x + cos($degress * M_PI / 180) * $value

もともとの座標に加算してます。つまり座標$coordinateから角度($degress * M_PI / 180)で距離$valueを進んだ時のx座標を求めることができます。

$coordinate->x = $coordinate->x + cos($degress * M_PI / 180) * $value;
$coordinate->y = $coordinate->y + sin($degress * M_PI / 180) * $value;

y座標についても同様です。
以上です。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ