表面垂直于圆锥体(surface normal to a cone)

2019-08-03 18:48发布

林在OpenGL / C ++编写一个程序来光线追踪一个cone.For我的强度计算,我需要知道normal.Given基圆半径,高度和中心坐标的面,我怎么计算表面正常吗?

Answer 1:

我假设你需要找到正常的给定的表面上的点的表面。 我还假设这是定向成使得所述基座朝下(-y轴)和圆锥体的点的锥形指向上方(+ Y轴)。 如果任何一个条件都没有的情况下,我可以编辑我的答案,以适应您的情况。

我们呼吁表面P贵点,中心坐标C,半径r,高度h,和正常N.

所有点和向量具有三个分量(x,Y,Z),所以我将把这些通过使用一个“”。 例如Px为P的x分量

首先,我们需要投射到其指向从C到P的X / Z平面上的单位向量

VX = PX-CX

VY = 0

VZ = PZ-锆石

该载体具有正确的方向,但幅度大于一。 它不是一个单位向量还,所以我们必须相应地扩展它。

米= SQRT(Vx的2 + 1/2 2)

男是V的大小,我们将用它来规模V ...

VX / =米

VZ / =米

最后计算找到正常的...

为nx = Vx的* H / R

NY = R / H

NZ = 1/2 * H / R



Answer 2:

如果您在锥面临向下的开口角度(α),底座为H的(+ Z)。 你可以选择在CON顶部您的合作体系。 这意味着锥上的尖尖的部分平衡。

在这种情况下,可以推导出一般表达式为正常komponent到该表面。

步骤1:

表达正常我球面坐标(E_R,e_θ,e_φ),还有所有组件都是单位矢量和θ定义为方位角天使。

结果 - > E_TH(I == A,Z)

如果用这种形状的SOM其它性质的工作,如磁化M或电通量。 人们可以很容易trasform这个我圆柱坐标。

第2步:

E_TH == - 罪(ⅰ)e_z + COS(ⅰ)e_s(z)的存在“==一个。



文章来源: surface normal to a cone
标签: graphics