原点(0,0,0)を基準にして3D空間でポイントを見つけようとしています。このポイントを計算するための3つの値があります。x軸とy軸の両方を中心とした度単位の回転と、「ビュー距離」です。これらの値を使用して、原点を基準にして3D空間内のポイントを特定するにはどうすればよいですか?基本的な三角関数を使用してみましたが、結果はランダムに見えます。下の画像は、何をする必要があるかを視覚的に示しています。
- 「vd」は「ビュー距離」です
- 「c」はバリューホルダーです
- '(x、y、z)'は私が見つけようとしている座標です
私がやろうとしているのは、プレーヤーが特定の距離から見ているポイントを見つけることです(特定の距離から離れたプレーヤーの直接の視線内のポイントを見つけます)。x軸とy軸を中心とした回転は常に変化しますが、表示距離は同じままであることに注意してください。誰かがこれを行うための提案、方法、または説明が必要な場合は、以下にコメント/回答してください。
私はこれをLWJGLで行っており、使用しているコードは次のとおりです。
float c = (float)(Math.cos(Math.toRadians(A00.rot.y)) * view_distance);
locate.y = (float)(Math.sin(Math.toRadians(rot.y)) * view_distance);
locate.x = (float)(Math.cos(Math.toRadians(rot.x)) * c);
locate.z = (float)(Math.sin(Math.toRadians(rot.x)) * c);
編集:
私の問題は、この現在の設定が何らかの理由で機能しないことです。数学は私には正当に思えますが、グラフの実際の設定のどこかに何か問題があるはずです。