两向量共线

发布时间 2023-03-26 23:05:58作者: GG_bo

原理

  1. 根据解析几何原理,两向量相等,则有: v = \(\lambda\) v1

实现

  1. 只需要:\(\frac{v1}{v}=\lambda\) 为常数即可
      template<size_t D,typename T>
      static bool collineation(glm::vec<D,T> const& v1,glm::vec<D,T> const& v2) noexcept
      {
          static_assert(std::is_floating_point_v<T>);

          auto v { v1 / v2 };
          auto pf { glm::value_ptr(v) };
          return !std::any_of(pf,pf+D,[pf](T val) {
              return pf[0] != val;
          });
      }