原理
- 根据解析几何原理,两向量相等,则有: v = \(\lambda\) v1
实现
- 只需要:\(\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;
});
}