2次元と3次元の簡単な幾何学#
平面における直線の方程式#
あるベクトル
に対して平行な直線あるベクトル
に対して垂直な直線
という2つの方法がある
ベクトルaに平行な直線#
点
となるような実数
あるいは
と書き直すことができる。
通常のように ベクトルを成分表示して
すなわち
と表される。 これはべクトル方程式を座標を用いて書き表したものである。
なお
Show code cell source
import numpy as np
import matplotlib.pyplot as plt
a = np.array([2, 1])
p = np.array([0, 1])
t = 2
x = p + t * a
fig, ax = plt.subplots(figsize=[4.5, 2.5], dpi=100)
o = [0, 0]
ax.arrow(*o, *a, color="darkorange")
ax.text(*a, "a", color="darkorange")
ax.scatter(*p, color="steelblue")
ax.text(*p, "p ", color="steelblue", ha="right")
ax.scatter(*x, color="steelblue")
ax.text(*x, "x ", color="steelblue", ha="right")
ax.arrow(*p, *(x - p), color="steelblue")
pos = p + (x - p) / 2
ax.text(*pos, r"$x = \vec{p} + t \vec{a}$", color="steelblue", ha="right")
ax.set(title=fr"line with $t={t}$, $a={a}$, $p={p}$")
fig.show()

tを消去した直線の方程式#
媒介変数
2点を通る直線#
2点
あるいは
で与えられる
点
より
# 与えられた点
x1, y1 = 3, 5
x2, y2 = -5, -3
# 傾きmを計算
m = (y2 - y1) / (x2 - x1)
# 傾きを使用して点傾き形式の方程式を求める
# 点 (x1, y1) = (3, 5) を使用
m, y1 - m*x1
(1.0, 2.0)
ベクトルaに垂直な直線#
平面上の点
点
と書かれる。
となる。
空間における直線の方程式#
任意の点
によって与えられる。
ベクトルを成分表示して
と書くことができる
tの消去#
として
そうでない場合、たとえば
とすればよい
空間における平面の方程式#
ベクトルaに垂直な平面#
所与の点
空間の点
となる。
となり、定数
点
なので
よって
垂直なベクトルをどう求めるか#
法線ベクトルを求める
3点を通る平面#
空間の平面は空間上の異なる3点で決まる。これらを
平面上の点
と書くことができる(平面のパラメータ表示)
点
が考えられる。
と書ける点
import matplotlib.pyplot as plt
import numpy as np
o = np.array([0, 0])
p = np.array([1, 1])
a = np.array([0, 2])
b = np.array([2, 0])
x = p + a + b
fig, ax = plt.subplots()
arrow_cfg = dict(width=0.01, color="black", length_includes_head=True)
ax.arrow(*o, *a, **arrow_cfg)
ax.arrow(*o, *b, **arrow_cfg)
ax.scatter(*x)
<matplotlib.collections.PathCollection at 0x7f4521f66170>

import matplotlib.pyplot as plt
import numpy as np
o = np.array([0, 0])
p = np.array([1, 1])
a = np.array([0, 2])
b = np.array([2, 0])
x = p + a + b
fig, ax = plt.subplots()
arrow_cfg = dict(width=0.01, color="black", length_includes_head=True)
ax.arrow(*o, *a, **arrow_cfg)
ax.arrow(*o, *b, **arrow_cfg)
ax.scatter(*x)
<matplotlib.collections.PathCollection at 0x7f4521df9090>

とすると
となるので、この連立1次方程式を解く。
第1,2式を行列表記すると
なので
となるので、第
この第2成分は
となり、
つまり
なので
をつかって
と表すことができる
ベクトル積で表す平面の方程式#
の
平面の方程式は、外積と内積を使って
と書くことができる
(法線ベクトル
ベクトル積は以下のように(形式的に)書くことができる
そのため、
ということになる