🐙

155. 平面内の直線と方向ベクトル

2023/03/22に公開

【問題概要】
平面内の直線とその方向ベクトルが与えられたとき、その直線と平面の交点を求める問題。ただし、交点が存在しない場合も考慮する必要がある。

【解説】
与えられた平面上の任意の点を\vec{p_0}=(x_0,y_0,z_0)とし、平面の法線ベクトルを\vec{n}=(a,b,c)、直線の方向ベクトルを\vec{d}=(p,q,r)とする。直線上の任意の点\vec{p}=(x,y,z)について、以下の式が成り立つ。

\vec{n}\cdot(\vec{p}-\vec{p_0})=0

直線の方向ベクトル\vec{d}と平面の法線ベクトル\vec{n}が直交しているため、\vec{n}\cdot\vec{d}=0が成り立つ。これを用いて、\vec{p}について解くと以下の式が得られる。

\vec{p}=\vec{p_0}+t\vec{d}

ただし、tは任意の実数である。この式は、平面上の任意の点(x,y,z)が与えられたとき、その点を通り、方向ベクトルが\vec{d}である直線と平面の交点を求める式である。交点が存在しない場合は、方程式が解を持たないことを表す。

Atcoderでこの問題に関連する問題としては、「ABC144 F」がある。

「ABC144 F」: https://atcoder.jp/contests/abc144/tasks/abc144_f
レーティング難易度(★): 2300
ACした回答者に絞った場合のレーティング帯の範囲(数値): 2038 - 2457
レーティング難易度(%): 2.6%
レーティング(数値): 2327
AC率(%): 18.5%
ACしたスコアの高い回答者: https://atcoder.jp/users/d_e_l_
解説ブログ: https://d-e-l.com/2019/10/abc144f-geometric-placement/

Discussion