【发布时间】:2021-03-08 09:08:35
【问题描述】:
我使用 Oracle JGeometry 方法返回(或作为方法参数)二维段作为双数组 (x1,y1,x2,y2 ... xn,yn)。我想扩展这个数组以包含 3D 段作为双数组 (x1,y1,z1,x2,y2,z2 ... xn,yn,zn) 默认 Z 值或减少到 2D (通过删除所有 Z 坐标)。我编写了简单的实用方法来制作它。有没有更简单或更智能的方法来做到这一点?
从 2D 到 3D 的转换:
public static double[] to3D(double z, double[] inputArray) {
List<Double> convertedItems = new ArrayList<>();
for (int i = 0; i < inputArray.length; i++) {
convertedItems.add(inputArray[i]);
if ((i + 1) % 2 == 0) {
convertedItems.add(z);
}
}
return convertedItems.stream().mapToDouble(Double::doubleValue).toArray();
}
从 3D 到 2D 的转换:
public static double[] to2D(double[] inputArray) {
List<Double> convertedItems = new ArrayList<>();
for (int i = 0; i < inputArray.length; i++) {
if ((i + 1) % 3 == 0) {
continue;
}
convertedItems.add(inputArray[i]);
}
return convertedItems.stream().mapToDouble(Double::doubleValue).toArray();
}
【问题讨论】:
-
如果您的代码按预期运行,并且您想要的只是改进建议,那么最好在codereview.stackexchange.com 询问
-
您可以在此处查看推荐的方法 - codereview.stackexchange.com/a/256865/184584