作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果给定一条线(由向量或线上的两个点表示),我如何找到该线与平面相交的点?我在这方面找到了大量资源,但我无法理解那里的方程式(它们似乎不是标准代数)。我想要一个可以由标准编程语言(我使用的是 Java)解释的等式(无论多长)。
最佳答案
这是Java中的一种方法,可以找到直线和平面之间的交点。有一些不包括在内的向量方法,但它们的功能是不言自明的。
/**
* Determines the point of intersection between a plane defined by a point and a normal vector and a line defined by a point and a direction vector.
*
* @param planePoint A point on the plane.
* @param planeNormal The normal vector of the plane.
* @param linePoint A point on the line.
* @param lineDirection The direction vector of the line.
* @return The point of intersection between the line and the plane, null if the line is parallel to the plane.
*/
public static Vector lineIntersection(Vector planePoint, Vector planeNormal, Vector linePoint, Vector lineDirection) {
if (planeNormal.dot(lineDirection.normalize()) == 0) {
return null;
}
double t = (planeNormal.dot(planePoint) - planeNormal.dot(linePoint)) / planeNormal.dot(lineDirection.normalize());
return linePoint.plus(lineDirection.normalize().scale(t));
}
关于3D 线面交点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666222/
我是一名优秀的程序员,十分优秀!