Jika yang polar
Anda maksud besarnya vektor, dan elevation
didefinisikan sebagai sudut antara vektor dan bidang xy (sesuai namanya), fungsinya adalah:
public Vector3 getCartesianFor(float elevation, float asimuth, float polar)
{
return new Vector3(polar*Cos(elevation)*Cos(asimuth),
polar*Cos(elevation)*Sin(asimuth),
polar*Sin(inclination));
}
Perhatikan bahwa ini sangat mirip dengan jawaban MLM, itu semua tergantung pada bagaimana Anda mendefinisikan elevation
sudut Anda . Saya juga menghormati tanda tangan templat fungsi Anda, tetapi saya menyarankan beberapa perubahan:
asimuth
adalah salah ketik, ejaan yang benar adalah azimuth
polar
biasanya mengacu pada sistem koordinat 2D (r, θ). Besarnya vektor biasanya disebut sebagairadius
- Urutan yang lebih konvensional akan
radius
menjadi parameter pertama.