作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 3D 维度空间中有一个点 (x1, y1, z1)和一条线 (x2,y2,z2)(x3,y3,z3)
我想找到线和点之间的最短距离。我已经为此找到了数学方程式,但我不是数学家,我未能理解方程式中的不同变量并将它们应用于 Java/Android。
我在这里和几乎所有地方都搜索并查看了类似的问题,但没有任何编程语言的示例。
最佳答案
在学习了一些空间数学之后,我终于可以将方程式转换为 Java 代码:
public static float betweenPointAndLine(float[] point, float[] lineStart, float[] lineEnd){
float[] PointThing = new float[3];
float[] TotalThing = new float[3];
PointThing[0] = lineStart[0] - point[0];
PointThing[1] = lineStart[1] - point[1];
PointThing[2] = lineStart[2] - point[2];
TotalThing[0] = (PointThing[1]*lineEnd[2] - PointThing[2]*lineEnd[1]);
TotalThing[1] = -(PointThing[0]*lineEnd[2] - PointThing[2]*lineEnd[0]);
TotalThing[2] = (PointThing[0]*lineEnd[1] - PointThing[1]*lineEnd[0]);
float distance = (float) (Math.sqrt(TotalThing[0]*TotalThing[0] + TotalThing[1]*TotalThing[1] + TotalThing[2]*TotalThing[2]) /
Math.sqrt(lineEnd[0] * lineEnd[0] + lineEnd[1] * lineEnd[1] + lineEnd[2] * lineEnd[2] ));
return distance;
}
关于用于查找 3D 空间中线和点之间距离的 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38350768/
我是一名优秀的程序员,十分优秀!