![見出し画像](https://assets.st-note.com/production/uploads/images/82928296/rectangle_large_type_2_e95ee0ba77902da4215709db8667f5ad.png?width=1200)
【マイクラ】角座標ベクトルをXYZ座標ベクトルに変換する
Playerの向いている方向はyaw, pitchは角座標、つまり角度でパラメータを持っています。
しかし、これが時にXYZ座標ベクトルでほしい瞬間が来るのです!
例えば、向ている方向の少し前にパーティクルを表示するとか!
そういった要望が自分から上がったため、本記事は変換する方法を考えてみたいと思います。
マイクラで角座標とXYZ座標の関係性
Playerの角座標パラメータについて
・yaw : 水平方向の首の向き
・pitch : 顎の角度のこと
![](https://assets.st-note.com/img/1658157364121-wU0GNNoJb6.png?width=1200)
この角座標をXYZ座標に関連させると
![](https://assets.st-note.com/img/1658157601362-GY6UoGZkqU.png)
このような関係性のようです。
ちなみに上右下左から西北東南のようです。不思議ですね。
数式で表そう
float yaw;
float pitch;
double x = -sin(yaw * PI / 180) * cos(pitch * PI / 180);
double y = -sin(pitch * PI / 180);
double z = cos(yaw * PI / 180) * cos(pitch * PI / 180);
PI / 180でラジアンに変換して、三角関数に渡している前提になっています。
この記事が気に入ったらサポートをしてみませんか?