度々お世話になっています、いつもありがとうございます。
さて、件名の通りなのですが、自機と敵機との角度をどのように計算すればいいのかがわかりません。
龍神録プログラミングの館の13章「敵にショットを撃たせてみよう」には
--- shot.cpp を以下のように記述 ---
#include "../include/GV.h"
//n番目のショットを登録した敵と自機との角度を返す
double shotatan2(int n){
return atan2(ch.y-enemy[shot[n].num].y,ch.x-enemy[shot[n].num].x);
}
と書いてあり(長いので該当部分のみ抜粋)、
自分の求めている仕事をする関数はdouble atan2(Y方向の自機と敵機の距離,X方向の自機と敵機の距離);だろうと思うのですが、
atan2という関数が見つからず、結局どのような計算をして角度を返しているのかわかりません。
atan2の中身か、自機と敵機との角度を計算するプログラムを教えてください。
自分はWINDOWS 8,DirectX,C言語を使用しています。
自機と敵機の角度を取得するには
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 自機と敵機の角度を取得するには
atan2はC言語の標準ライブラリです。
「BohYoh.com【C言語講座】標準ライブラリ atan2」
http://www.bohyoh.com/CandCPP/C/Library/atan2.html
数学的な意味はバグさんの書かれたとおりです。アークタンジェント(逆tan)をベースにした関数です。
「BohYoh.com【C言語講座】標準ライブラリ atan2」
http://www.bohyoh.com/CandCPP/C/Library/atan2.html
数学的な意味はバグさんの書かれたとおりです。アークタンジェント(逆tan)をベースにした関数です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 自機と敵機の角度を取得するには
返答の順番が逆になってしまいますがごめんなさい。
>>softya様
atan2は標準ライブラリだったのですか!自分はatan2を自作の関数だと勘違いしていました。
>>バグ様
atan2の中身は三角関数(主にアークタンジェント)を利用しているのですね、そのあたりの数学は学習したのでわかりました!
返信ありがとうございます、math.hをインクルードしてatan2を利用してこうとおもいます!
>>softya様
atan2は標準ライブラリだったのですか!自分はatan2を自作の関数だと勘違いしていました。
>>バグ様
atan2の中身は三角関数(主にアークタンジェント)を利用しているのですね、そのあたりの数学は学習したのでわかりました!
返信ありがとうございます、math.hをインクルードしてatan2を利用してこうとおもいます!