vtk IntersectWithLine()函数使用法线作为直线

时间:2012-03-14 15:00:19

标签: c++ vtk

我有两个等值面(头骨和皮肤)。给定颅骨等值面上的A点,我使用“double * pos = pickerCell-> GetPickNormal()”计算A点的法线。 当我打印pos时,这就是我得到的:-6.2367,1.98263,-0.9823 有人可以向我解释这3个值是什么意思吗?

我想找到A点的这个法线与皮肤等值面的交点。

我可以使用IntersectWithLine()函数吗?如果是的话,我的情况下的那条线会是正常的吗?正常的起点和终点是什么?

还是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如您所见,您需要将要与之相交的线定义为两点。通常做的是从你选择的点P开始(计算法线v的同一点)并计算两个点,A = P + v delta和B = P - v delta你在哪里使用上下文设置delta(如果模型位于单位多维数据集中,delta可能类似.01,如果模型的单位大小为1000,delta可能为1,等等。)

另外,我不确定为什么细胞选择器返回的正常值没有标准化,但我假设如果你将它标准化它就是表面法线。我称之为“pos”以外的其他东西以避免混淆(因为它是一个方向,而不是一个位置)。