在圆锥体上获取法线点



我正在尝试让圆锥体基本体在光线跟踪器中工作。我得到了圆锥体和射线的交点。但是,我不知道如何从定义圆锥体的方式获得圆锥体的法线。我用以下内容定义我的圆锥体:

pos -- The vertex  of the cone
size -- Height of the cone
direction -- A unit vector that defines the direction of the cone
angle --  The angle of the cone

(为了了解更多信息,我遵循了线和圆锥体的交点作为如何定义它的参考)。

根据我收集到的信息,我可以使用参数方程中一点的两条切线,并使用它们的叉积获得法线。然而,考虑到我定义圆锥体的方式,以及参数方程的两条切线,我不知道如何获得参数方程。

如果以某种方式有另一种方法来找到法线,这将非常好。

我最终将grad函数应用于圆锥方程(x*a+y*b+z*c)^2-(a^2+b^2+c^2)(x^2+y^2+z^2)cos(t)^2,其中

  1. {x,y,z}=3d点(所讨论的法线点)
  2. {a,b,c}=方向矢量
  3. t=锥角

然后使用wolframalpha,这最终会给我

  • x=(2 a(a x+b y+c z)-2(a ^2+b ^2+c ^2)x cos ^2(t))
  • y=(2 b(a x+b y+c z)-2(a ^2+b ^2+c ^2)y cos ^2(t))
  • z=(2c(a x+b y+c z)-2(a ^2+b ^2+c ^2)z cos ^2(t))

normal={x,y,z}

相关内容

  • 没有找到相关文章

最新更新