【问题标题】:Cone normal vector圆锥法线向量
【发布时间】:2021-02-27 08:52:21
【问题描述】:

我有 cone->p(圆锥的顶点)、cone->orient(轴矢量)、cone->k (半角切线),cone->minmcone->maxm(2 个高度值,用于圆锥帽)。我还有点 intersection 在圆锥上。如何仅使用这些参数在交点点找到圆锥(侧面)法线向量?

【问题讨论】:

标签: graphics geometry raytracing


【解决方案1】:

Сame up with 更简单的方法:

Dis从交点I到基点P的距离

制作长度的轴方向向量

D = Dis * sqrt(1+k^2)

在这个距离的轴上做点

A = P + Normalized(Orient) * D

现在

Normal = I - A


旧答案:
使用向量“IP = I - P”和标量(点)积将点I(交点)正交投影到圆锥轴上:

AxProj = P + Orient * dot(IP, Orient) / dot(Orient, Orient) 

AxPrI 的向量(垂直于轴):

AxPerp = I - AxProj

向量,与锥面相切,使用向量积:

T = IP x AxPerp

向量,垂直于锥面:

N = T x IP

【讨论】:

    【解决方案2】:

    如果I是圆锥表面的交点并且你知道它的坐标,P是圆锥的顶点,你也知道它的坐标,那么这就足够了:

    Normal = (axis x PI) x PI
    Normal = Normal / norm(Normal)
    

    其中axis 是与圆锥轴对齐的向量。

    【讨论】:

      猜你喜欢
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多