返回的值是什么?
dot(normalize(a), normalize(b))
假设向量a和b之间的角度为45°。
答案 0 :(得分:4)
通常,两个向量的 dot 乘积等于两个向量之间的角度的 cosine 乘以两个向量的大小(长度)。
localhost:5000/values
因此,由于一个单位矢量的长度为1,因此两个单位矢量的 dot 乘积等于两个矢量之间的角度的 cosine 。
struct S;
inline void f();
inline void g(S const&);
struct S
{
friend void f() {}
friend void g(S const&) {}
} const s;
int main()
{
f(); // Ok
// S::f(); // error: 'f' is not a member of 'S'
g(s);
// S::g(s); // error: 'g' is not a member of 'S'
}
这意味着,如果向量dot( A, B ) == | A | * | B | * cos( angle_A_B )
和uA = normalize( A )
uB = normalize( B )
cos( angle_A_B ) == dot( uA, uB )
之间的角度为45度,则:
a
请注意,边长为 1 的正方形中对角线的长度为 sqrt(2)。如果对角线的长度为 1 ,则一侧的长度为 1 / sqrt(2)。