Nếu theo polar
bạn có nghĩa là độ lớn của vectơ và elevation
được định nghĩa là góc giữa vectơ và mặt phẳng xy (như tên ngụ ý), hàm sẽ là:
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));
}
Lưu ý rằng điều này rất giống với câu trả lời của MLM, tất cả phụ thuộc vào cách bạn xác định elevation
góc của mình . Tôi cũng đã tôn trọng chữ ký mẫu chức năng của bạn, nhưng tôi đề nghị một vài thay đổi:
asimuth
là một lỗi đánh máy, đúng chính tả sẽ là azimuth
polar
thường đề cập đến hệ tọa độ 2D (r, θ). Độ lớn của vectơ thường được gọi làradius
- Một đơn hàng thông thường hơn sẽ có
radius
như là tham số đầu tiên.