相対論VR 開発日記 240308

9日目。
今回はスクリプトの改良のため、あらかじめ計算式を書いておく。

ローレンツ収縮

ローレンツ収縮はローレンツ因子γ(v)

$$
\gamma(v) = \frac{1}{\sqrt{1-\beta(v)^2}} \\
ただし \beta = \frac{v}{c}, vは速度, cは光速
$$

で表される。

速度Vで運動する観測者から見た、速度vで走る長さ L の電車について考える。電車の相対速度v'は、速度の合成則を用いて

$$
v' = \left( \frac{V \pm v}{1\pm\frac{Vv}{c^2}} \right) = \frac{-V+v}{1+\frac{-Vv}{c^2}} 
$$

である。よって見た目の長さL'は

$$
L' = \frac{L}{\gamma(v')} =\sqrt{1-\beta(v')^2}L
$$

さてプログラムの作成のためあらかじめ計算をしておく。これは検証にも用いる。
観測者の位置を0としたときの電車の中心位置をxとおくと電車の後端の位置はx-L/2、先端の位置はx+L/2である。

まずx=0のとき見た目の位置x'はx' = 0である。また電車の後端の位置は-L'/2=-L/2γ(v')、先端の位置はL'/2=L/2γ(v')である。現在作っているコードにおいてはスケールを1/γ(v')にすればよい。
次にx=x1のとき見た目の位置x'はx'=x1/γ(v')である。また電車の後端の位置は-L'/2+x1/γ(v') =(-L+x1)/γ(v')、先端の位置はL'/2+x1/γ(v')=(L+x1)/γ(v')である。