给定两个向量a,b之间的45度角,此着色器代码返回什么?

时间:2018-07-12 11:34:40

标签: glsl webgl

返回的值是什么?

dot(normalize(a), normalize(b))

假设向量a和b之间的角度为45°。

  • 0
  • 1
  • sqrt(2)
  • 1 / sqrt(2)

1 个答案:

答案 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'
}

A dot B


这意味着,如果向量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)