半球上半部分的向量

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.