コード例 #1
0
ファイル: vec2d.cpp プロジェクト: Cloudef/spacerocks
Vec2D Vec2D::projection(Vec2D const& other) const
{
  Vec2D direction = other.unit();
  return direction.scalei(dot(direction));
}
コード例 #2
0
ファイル: vec2d.cpp プロジェクト: bzar/2dshooter
// n.projection(m) = m, m.reverseProjection(n.unit()) = n
Vec2D Vec2D::reverseProjection(const Vec2D &other) const
{
  Vec2D nu = other.unit();
  float l = length();
  return nu.scalei(l / nu.dot(scale(1.0f/l)));
}