インターネットで300ページ以上読んだのですが、思い通りの結果が得られなかったか、うまくいかなかったので、ここで助けてもらいたいと思います。擬似コードと数学を使って説明することができます。:)
つまり、点A(原点)があります。ポイントAには、半径、XYZ位置、およびXYZ回転があります(2つの角度で実行できることはわかっていますが、実際には3つの角度で実行する必要があります)。ポイントBの位置は不明です。
その情報を武器に、私の質問は次のとおりです。ポイントBの位置をどのように見つけるのでしょうか。(あるいは、私の質問は、「球上の3Dポイントを見つける方法は?」と言い換えることができます。)
私はすでに2Dでそれを行っており、そこでは機能しました。私が使用した2Dの場合:
x=pointA.x+radius*cos(angle)
y=pointA.y+radius*sin(angle)
純粋な行列は使用しませんが、余弦定理などを使用したいと思います。擬似コードでの私の試み(ひどく失敗しました。XYZ回転を余弦定理と組み合わせる方法が本当にわかりません):
newx=pointA.x+radius*cos(rotationY)*sin(rotationZ+toRadians(90))
newy=pointA.y+radius*cos(rotationZ-toRadians(90))*math.sin(rotationY)*math.cos(rotationX)
newz=pointA.z+radius*math.cos(rotationZ+toRadians(90))*sin(rotationX)
誰かが私を助けてくれたらとてもありがたいです。:)