两线两平面的交集

时间:2019-12-28 11:57:57

标签: haskell geometry

我试图在不使用Haskell库的情况下在Haskell中实现两条直线的交点和两个平面的交点。我应该如何开始呢?任何模板或实现都将有助于学习。我是Haskell的初学者

1 个答案:

答案 0 :(得分:2)

有3维的线和平面公式。

enter image description here

如果您有一个与L线平行的av向量(希望通过O(0,0,0)点)并且v =(a,b,c),我们还知道L上的一个P点,其中P = (x0,y0,z0)然后:

L <=>(x-x0)/ a =(y-y0)/ b =(z-z0)/ c

飞机

enter image description here

如果要定义一个Pl平面,则需要在该平面上定义一个点(x0,y0,z0),并垂直于该平面向量v =(a,b,c)。现在的等式是:

Pl <=> a * x + b * y + c * z + d,

其中

d =-(a * x0 + b * y0 + z * z0)

Haskell函数

现在您知道这些功能是什么,您只需要实现它们:

https://www.tutorialspoint.com/haskell/haskell_functions.htm

使用上面学到的信息,您应该可以实现它。

直线和平面的交点

两个度量公式的交点是满足两个方程的点集。对于直线,在大多数情况下,交点是一个点。如果两条线相同,那么它们的交点就是它们自己。

在大多数情况下,两个平面的交点是一条线。如果我们将平面与自身相交,它也可以是平面。

您将需要编写方程系统的评估程序,其中有两个方程作为输入,一个方程/点作为输出。


插图的灵感来自https://brilliant.org