algorithm - 线性代数,几何。点积的值为 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; 未定义的结果;
非常感谢。
解决方案
推荐阅读
- python - 如何为我的绘图创建更多颜色?
- single-sign-on - 是否有 IDP -> 到 IDP -> 身份验证之类的东西?(SAML2)
- html - 如何检查 Chrome 中另一个元素下的元素?
- r - 将字符数据帧转换为具有 R 中二进制变量的“更清晰”的数据帧
- android - Flutter Webview - 用户每次都必须登录
- loops - kattis问题的错误答案:纹理分析
- c++ - 不确定指针 C++ 的使用
- javascript - 如何在 React js 中获取 div 的 clientHeight?
- python - 解释了两种不同的归并排序实现之间的比较
- c++ - 代码转换后变量的意外值