Tôi đang tính toán góc cần bắn để phóng một tọa độ cụ thể.Tính góc cần thiết để nhấn tọa độ (x, y) từ vị trí khác (0,0) với độ cao khác nhau
Đạn của tôi nằm ở toạ độ ngẫu nhiên và tọa độ đích của tôi ở tọa độ tĩnh.
tôi đã kết thúc chạy qua phương trình sau đây trên Wikipedia để tính góc cần thiết để đạt mức phối hợp tại (x, y) từ (0,0):
Tôi đã thực hiện một số nỗ lực để hiểu điều này và công thức khác và cố gắng thực hiện sau đây (Tôi đang sử dụng C# và XNA).
double y = source.Y - target.Y;
double x = Vector2.Distance(source, target);
double v = 1440; //velocity
double g = 25; //gravity
double sqrt = (v*v*v*v) - (g*(g*(x*x) + 2*y*(v*v)));
sqrt = Math.Sqrt(sqrt);
double angleInRadians = Math.Atan(((v*v) + sqrt)/(g*x));
Tôi cũng đã cố gắng làm như sau, dẫn đến một góc giống nhau khi giá trị của v và g giữ nguyên.
double targetX = target.X - source.X;
double targetY = -(target.Y - source.Y);
double r1 = Math.Sqrt((v*v*v*v) - g*(g*(target.X*target.X) + ((2*target.Y)*(v*v))));
double a1 = ((v*v) + r1)/(g*target.X);
angleInRadians = -Math.Atan(a1);
if (targetX < 0)
{
angleInRadians -= 180/180*Math.PI;
}
phỏng đoán của tôi là ngay cả trong tôi (giả định) cố gắng không ra nguồn phối hợp, rằng tôi vẫn không thực hiện việc tính toán một cách chính xác cho tọa độ với một tổ chức phi (0,0) nguồn và độ cao khác nhau.
Dưới đây là hình ảnh mô tả hệ tọa độ của tôi. Nó là mặc định cho XNA.
Tôi nghĩ bạn nên dịch vị trí thật sự của bạn (0,0) hệ thống dựa trên, thực hiện các chức năng đó và thực hiện một bản dịch chính thức từ (0,0) cho hệ thống thực tế ... giả sử không có yếu tố nào ngoài trọng lực, Góc tính toán phải giống nhau từ bất kỳ nguồn nào ... –
Các tham số khác (đầu vào) nào ảnh hưởng đến đường dẫn chiếu, giống như hằng số vận tốc và trọng lực hoặc các biến khác là gì? –
Trọng lực không phải là tiêu cực? Đó là -9.8m/s nếu tôi nhớ chính xác. –