このページは[url=https://www.geogebra.org/m/ddm5798j]マス旅[/url]の一部です。[br][br]これまで曲面と曲線の関係性で曲線を調べてきましたね。[br]今回も曲面とつながる曲線を扱います。それは「測地線」です。[br]アリさんが立体の表面を進みます。[br]アリさんは、脇目もふらずに寄り道せずに目的にまっしぐらに[br]進みます。[br]アリさんは目的地まで最短でまっすぐ進んでいるつもりなのです。[br]しかし、外からみるとその経路は曲線です。[br]だって、表面が曲がっていますからね。
曲面上をまっすぐ進む最短経路が「測地線」です。[br][br][b][size=200]課題:「円錐の測地線」を空間の中にかくアプリ[br][/size][/b][br][color=#0000ff][b][size=150]3D空間で円錐の測地線にそって点が移動するようすを表示する。[br][/size][/b][/color]
「測地線(geodesic)」は、まさに地球の大きさを測る「測量」から始まったコトバであり、[br]古代ギリシャ時代から存在する概念です。[br][br]そうは言っても、物理や数学のフィルターを通してみると泥臭いイメージはなく、[br]常にその時代の最先端の学問と結びついて進化してきました。[br][br]・18世紀:変分法(最速降下線などの最適化問題)と結びついて研究されました。[br]・19世紀:ガウスが微分幾何学と結びつけ、リーマンが「多様体」へと概念を抽象化しました。[br]・20世紀:アインシュタインが相対性理論を展開した際、時空間の歪みの中を光や物体が進むルートとして[br]「測地線」が中心的な役割を果たしました。[br][br]
[b][size=150]<ウォーミングアップ(円柱の測地線)>[br][/size][/b][br]円柱の側面の測地線はらせん(常らせん)です。[br]昔トイレットペーパーの芯にみられた筋はらせんでしたね。[br][br]では、「らせん測地線」をかいてみよう。[br]底面の半径が1で中心がOの直円柱があります。[br]底面の点Aから出発して、同じ母線AH上の点Bで一周したとする。[br]AHで側面を切れば、底辺(底面周と同じ長さの)2π、高さLの長方形が展開図になるね。[br]AからBに進む経路の途中P1,P2がある。[br][br]円柱を真上から見ると、P1はAから弧度法でt進んだ点、P2はAから2t進んだとしよう。[br]展開図ではAP1もAP2も直線だね。しかも、AP1P2が折れ線でなく直線になる。[br]もうわかますね。進む角が2倍なら、回る弧も2倍だね。[br]弧度法だから、AP1の底辺へ正射影がt、AP2の正射影が2tだ。[br]すると、正射影の垂線の足をP1',P2'とすれば、P1P1'の2倍がP1P2’となるね。[br]この事実を使って、Pを3D空間に貼り付けよう。[br][br]A(1,0,0),B(1,0,2π)と、1周してBがAより2π上に上ると、展開図では、直角二等辺三角形ができる。[br]だから、[b][size=150][color=#0000ff]P(cos(t),sin(t),t)[/color][/size][/b][br]となるね。[br][br][br][size=150][b]<本番(円錐の測地線)>[/b][/size][br][br]「[b]円錐の側面の測地線は線分[/b]」です。[br][br]円錐の頂点を[b]N[/b]とし底面の中心を[b]O[/b]としよう。Nの[b]高さをh[/b]とする。[br][b]底面の半径がrで、母線の長さはL[/b]だ。[br]底面の[b]点Aから出発して、同じ母線NA上の点Bで1周[/b]したとする。[br]見取り図では簡単のために、[b]B=Aとなっている[/b]としよう。[br]NAで側面を切れば、側面の扇形の弧と底面の円周が一致するので、[br]側面の扇形の中心角は弧度法で[b]2π×r/L[/b]となる。[br]展開図では線分ABは直線になる。その途中に点Pがあり、NAとNPの作る角をθとする。[br][br]#「[b]見取り図」における点Pの位置づけ[/b]をしよう。[br][b]側面ではθ進んでいたが、真上からみるとtだけ回転[/b]しているとする。[br]扇形の中心角のように、側面の角φと底面の角tにはr/L倍という関係がある。[b]θ=t×r/L[/b]だ。[br]円柱のときのように見取り図を真上から見ると、[br]Pの底面への正射影をP'とすると、Nの正射影はOとなる。[br]OAから始まりtだけ回転してOP'となるので、底面では円運動だ。[br]ただし時計の針は縮んでOP’となっている。[br][b]O(0,0,0)、A(r,0,0)=Bとすると、P'=(OP'cos(t),OP'sin(t),0)[/b]とわかるね。[br]こうなると、OP'が出ればよいね。[br]OP'はNPの正射影だから、相似を使って比は[b]r:L[/b]と同じだ。[br][b][color=#0000ff][size=150]OP'=NP×r/L[/size][/color][/b]。[br]次はNPだ。NからPまでの長さを小文字pとする。[br][br]#「[b]展開図」の線分ABに扇形の頂点Nから降ろした垂線をD、ND=d[/b]としよう。[br]展開図をxy平面にかくことで座標幾何も使えるようにできる。[br]Nを原点におき、Aをx軸の正におくことで、[br][b]N(0,0),A(L,0)、B(Lcos(2πr/L),Lsin(2πr/L))[/b]となるから、直線ABの方程式が決まる。[br]だから、NからABに下した垂線NDの長さdも求められるね。[br]また、角ANDをαとすると、角PND=θ-α。[br]ただし、cosα=d/Lとなるので、α=arccos(d/L)[br]NからAB上の点Pまでの長さpについて、[br]直角三角形NDPに着目すると[b][color=#0000ff]d/p=cos(θ-α)[/color][/b][br][b][color=#0000ff][size=150]p=d/cos(θ-α)[/size][/color][/b][br]これで、OP'=NP×r/L=pr/L[br]ただし、[b]p=d/cos(θ-α)=d/{cos(tr/L-arccos(d/L))}[/b]と求められるね。[br][br]#最後に[b]点Pの3D内での座標[/b]を求めよう。[br]P'=(OP'cos(t),OP'sin(t),0)のもとPの高さはNの高さからp×h/Lを引けばよい。[br][b]z=h-ph/L=h(1-p/L)[br]x=pr/L cos(t)[br]y=pr/L sin(t)[br][/b][br][b][color=#0000ff][size=200]P=(pr/L *cos(t), pr/L* sin(t), h(1-p/L)) [br][/size][/color][/b][br]p=d/cos(θ-α)=d/{cos(tr/L-arccos(d/L))}[br][br]dは(0,0)から直線ABの方程式により垂線の長さで求められる。[br]単純な角ならば、三平方の定理で求められるね。[br][br]たとえば、r=1, L=4とすると、r/L=1/4から、側面の扇形の中心角はπ/2.[br]展開図で扇形NABは4分円で、三角形NABは直角二等辺三角形となるからNDは角ANBの二等分線になる。[br]だから、d=L×√2/2=2√2,α=π/4となり、[br]p=2√2/cos(t/4-π/4)。[br]h=√(4^2-1^2)=√15[br]OP'=pr/L=p/4=√2/2cos(t/4-π/4)[br][br]ということは[br][b]x=cos(t){√2/2cos(t/4-π/4)}=√2cos(t)/2cos(t/4-π/4)[br]y=sin(t){√2/2cos(t/4-π/4)}=√2sin(t)/2cos(t/4-π/4)[br]z=h(1-p/L)=√15(1-2√2/4cos(t/4-π/4))=√15(1- √2/2cos(t/4-π/4))[br][/b][br]#球の測地線は次回にまわそう。
[b][size=150]<geogebra>[br][/size][/b][br]# 固定値と基本の点[br]s2 = sqrt(2)[br]h = sqrt(15)[br]O = (0, 0, 0)[br]N = (0, 0, h)[br]A = (1, 0, 0)[br][br]# 底面の中心O, 頂点N、半径1の円錐[br]a = Cone(O, N, 1)[br][br]# 測地線(全体)[br]geodesic = Curve( (s2*cos(t)) / (2*cos(t/4 - pi/4)), (s2*sin(t)) / (2*cos(t/4 - pi/4)), h*(1 - s2 / (2*cos(t/4 - pi/4))), t, 0, 2*pi )[br][br]# アニメーション用スライダー[br]k = Slider(0, 2*pi, 0.05)[br][br]# 側面上の回転角・動点Pの計算用[br]f = k / 4[br]pd = 2 * cos(k/4 - pi/4)[br][br]# 側面上の動点P[br]P = ( (s2*cos(k))/pd, (s2*sin(k))/pd, h*(1 - s2/pd) )[br][br]# 状況表示の線分を点線などで太さ3で追加する。[br]Segment(N, A)[br]Segment(N, P)[br][br]# テキスト表示(空間を動かすとテキストも動いて見ずらいので非表示でもよい)[br]txt = "上からみた回転角 = " + k + " 、側面での回転角 = " + f