-2
我想用Java編寫代碼,用兩個角度移動船:一個在xy平面上,另一個在xz平面上。我要的是代碼,將做到以下幾點:3D運動編程
- 如果XY和XZ角度爲0,沿正移動x軸
- 如果XY角爲90°,在XZ角度爲0,移動沿y軸正
- 如果XY角度爲0,XZ角爲90°,沿正z軸
搬到這裏就是我:
xyAngle = Math.toRadians(xyCourse);
xzAngle = Math.toRadians(xzCourse);
double deltaX = Math.cos(xyAngle) * Math.sin(xzAngle);
double deltaY = Math.sin(xyAngle) * Math.cos(xzAngle);
double deltaZ = Math.cos(xzAngle);
System.out.println(String.format("xyAngle = %.4f, xzAngle = %.4f", xyAngle, xzAngle));
System.out.println("xyAngle info: sin = " + Math.sin(xyAngle) + ", cos = " + Math.cos(xyAngle));
System.out.println("xzAngle info: sin = " + Math.sin(xzAngle) + ", cos = " + Math.cos(xzAngle));
System.out.println(String.format("deltaX = %.2f, deltaY = %.2f, deltaZ = %.2f", deltaX, deltaY, deltaZ));
for (int i = 0; i <= distance; i++) {
System.out.println("Coordinates: " + String.format("(%.2f, %.2f, %.2f)", xCoordinate, yCoordinate, zCoordinate));
xCoordinate += deltaX;
yCoordinate += deltaY;
zCoordinate += deltaZ;
}
我似乎無法得到這個工作。任何人有任何提示?
什麼具體不起作用?請添加更多詳細信息。 – tnw
這樣我得到的結果: 輸入XY角度:0 輸入XZ角度:0 DELTAX = 0.00,移動deltaY = 0.00,deltaZ = 1.00 輸入XY角度:90 輸入XZ角度:0 DELTAX = 0.00, deltaY = 1.00,deltaZ = 1.00 輸入xy角度:0 輸入xz角度:90 deltaX = 1.00,deltaY = 0.00,deltaZ = 0.00, –