急求一立体几何算法

来源:百度知道 编辑:UC知道 时间:2024/06/09 07:47:27
已知一个长方体的六个面(坐标),长方体内任一点坐标,长方体外任一点坐标。怎样判断这两点的连线,穿过长方体的的哪个平面,并求其穿过点的坐标?我现在回求穿过点坐标(知道穿过平面的情况下),但不会判断穿过长方体的哪个面
怎么做垂线?每个点作六条垂线马?

比如说,两点坐标分别为a,b,c a',b'c'
长方体六个面为x_max,x_min, y_max,y_min, z_max,z_min
焦点坐标为x,y,z

没太看明白。我是要用计算机语言实现它,所以能那公式算一遍看看吗?谢了

可以将直线和面分别用函数表示,
直线的其中一种表示方法为:
y=dx+e; z=fx+g;a≥x≥a'(.....)

其中一个面为:
z=z_max; x_max≥x≥x_min; y_max≥y≥y_min, 依此类推,将各平面表示出来,求直线和面的交集。如:将z=z_max;带入线段的方程,求出x和y,看求出的值在不在这个平面上即可。

这两个点都对长方体做垂线,这几条垂线和两点的连线会组成一个面,这个面会与长方体的某几个面相交,再加上连线的位置,应该能判断出穿过哪个面了。同样也能求其穿过点的坐标

通过这两个点都对长方体的一个面做垂线,连线会组成一个面,看它与长方体的非平行的几个面相交,如果是一个,那么在棱上。如果是两个的话,记下,再找另一个面(与第一此选的面不平行),通过这两个点都对长方体的这个面做垂线,连线会组成一个面,找它与长方体的非平行面相交的两个面,记下,会发现有两个面是同一个面或平行,就确定了。