自機と敵機の角度を取得するには

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
milgy
記事: 10
登録日時: 12年前

自機と敵機の角度を取得するには

#1

投稿記事 by milgy » 12年前

度々お世話になっています、いつもありがとうございます。

さて、件名の通りなのですが、自機と敵機との角度をどのように計算すればいいのかがわかりません。
龍神録プログラミングの館の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言語を使用しています。

アバター
バグ
記事: 130
登録日時: 15年前
住所: 愛媛県
連絡を取る:

Re: 自機と敵機の角度を取得するには

#2

投稿記事 by バグ » 12年前

こちらが参考になるかもしれません。

http://otsuiti2.web.fc2.com/menu/sn/sankaku.htm

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 自機と敵機の角度を取得するには

#3

投稿記事 by softya(ソフト屋) » 12年前

atan2はC言語の標準ライブラリです。
「BohYoh.com【C言語講座】標準ライブラリ atan2」
http://www.bohyoh.com/CandCPP/C/Library/atan2.html

数学的な意味はバグさんの書かれたとおりです。アークタンジェント(逆tan)をベースにした関数です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

milgy
記事: 10
登録日時: 12年前

Re: 自機と敵機の角度を取得するには

#4

投稿記事 by milgy » 12年前

返答の順番が逆になってしまいますがごめんなさい。
>>softya様
atan2は標準ライブラリだったのですか!自分はatan2を自作の関数だと勘違いしていました。

>>バグ様
atan2の中身は三角関数(主にアークタンジェント)を利用しているのですね、そのあたりの数学は学習したのでわかりました!

返信ありがとうございます、math.hをインクルードしてatan2を利用してこうとおもいます!

閉鎖

“C言語何でも質問掲示板” へ戻る