スポンサーリンク

glm::closestPointOnLine

glmの、ある点に最も近い線分上の点を求める関数。

公式マニュアル:

https://glm.g-truc.net/0.9.9/api/a00310.html

計算・描画

static float z = 3.f;
{
  z -= 0.1;

  glm::vec3 p(1, z, 0); //どこか頂点
  glm::vec3 a(0, -2, 0);//線分の始点
  glm::vec3 b(0, 2, 0); //線分の終点

  // 点に最も近い直線上の点を求めるのに必要
  // #include <glm/gtx/closest_point.hpp>
  glm::vec3 kk = glm::closestPointOnLine(p, a, b);

  glLineWidth(3);//線分
  glBegin(GL_LINES);
  glVertex3fv(glm::value_ptr(a));
  glVertex3fv(glm::value_ptr(b));
  glEnd();

  glPointSize(7);//どこか頂点
  glColor3d(1, 0, 0);
  glBegin(GL_POINTS);
  glVertex3fv(glm::value_ptr(p));
  glEnd();

  glPointSize(7);//線分上の点
  glColor3d(0, 1, 0);
  glBegin(GL_POINTS);
  glVertex3fv(glm::value_ptr(kk));
  glEnd();
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: