半球上半部分的向量
Vector on upper half of hemisphere
我有一个法向量 N
,它定义了半球的上半部分和一个函数,它在半球上创建随机点 P
。
现在我想知道,随机选择的点是否在上半部分。是否可以假设,如果 N+P
的长度大于或等于 1,P
位于上半部分,或者在 glm
中是否有更好的计算方法?
@Raxvan 给出了如何正确执行的完全有效的答案:使用 dot product 并检查它是否为正(非负)。
回答您在评论中也重申的最初想法:
if the length of N+P
is greater or equal 1, P
is on the upper half
这是一种错误的方式。是的,此测试 returns "true" 用于所有正确的点,但它不会过滤掉所有不正确的点。例如,考虑 N
是 (0,0,1)
(即沿 Z 轴的向量)而 P
是 (0.99, 0, -0.14)
(即向量略低于 XY 平面并位于沿 X 轴的远端)。显然 P
不在 "upper hemisphere" 中,但 N + P
是 (0.99, 0, 0.86)
并且它的长度显然大于 1.
我有一个法向量 N
,它定义了半球的上半部分和一个函数,它在半球上创建随机点 P
。
现在我想知道,随机选择的点是否在上半部分。是否可以假设,如果 N+P
的长度大于或等于 1,P
位于上半部分,或者在 glm
中是否有更好的计算方法?
@Raxvan 给出了如何正确执行的完全有效的答案:使用 dot product 并检查它是否为正(非负)。
回答您在评论中也重申的最初想法:
if the length of
N+P
is greater or equal 1,P
is on the upper half
这是一种错误的方式。是的,此测试 returns "true" 用于所有正确的点,但它不会过滤掉所有不正确的点。例如,考虑 N
是 (0,0,1)
(即沿 Z 轴的向量)而 P
是 (0.99, 0, -0.14)
(即向量略低于 XY 平面并位于沿 X 轴的远端)。显然 P
不在 "upper hemisphere" 中,但 N + P
是 (0.99, 0, 0.86)
并且它的长度显然大于 1.