代码之家  ›  专栏  ›  技术社区  ›  Philipp

半球上半部分的向量

  •  0
  • Philipp  · 技术社区  · 6 年前

    我有一个法向量 N ,定义半球的上半部分和创建随机点的函数 P 在半球上。

    现在我想知道,随机选择的点是否在上半部分。如果 N+P 大于或等于1, P 是在上半部分,还是有更好的方法来计算 glm ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   SergGr    6 年前

    @Raxvan给出了一个非常有效的答案:使用 dot product 检查是否为正(非负)。

    回答您的原始想法,您也在评论中重新陈述:

    如果长度 N+P 大于或等于1, P 在上半部

    这是一种错误的方式。是,此测试对所有正确的点返回“true”,但不会过滤掉所有不正确的点。例如,考虑 N (0,0,1) (即沿Z轴的矢量)和 P (0.99, 0, -0.14) (即,仅在XY平面下方一点且位于X轴远端的向量)。明显地 P 不在“上半球”,但 N + P (0.99, 0, 0.86) 其长度明显大于1。