首页 > 解决方案 > 线性代数,几何。点积的值为 0

问题描述

dot 表示点积。交叉意味着交叉产品。

void func(vec3 origin, vec3 direction, vec3 v0, vec3 v1, vec3 v2) {

  vec3 u, v, n;
  vec3 w0;
  float r, a, b;

  u = (v1 - v0);
  v = (v2 - v0);
  n = cross(u, v);
    
  w0 = origin - v0;
  a = -dot(n, w0);
  b = dot(n, direction);
    
  r = a/b;
}

因此,如果原点、方向、v0、v1、v2 都在同一个平面上,a 将为 0,b 将为 0。并且 r = 0/0; 未定义的结果;

非常感谢。

标签: algorithm

解决方案


推荐阅读