- ベストアンサー
回転した楕円を直線に投影した長さの求め方
- 回転した楕円を任意の直線に投影した長さの求め方について教えてください。
- 長軸と短軸を持つ楕円を回転させ、任意の直線に投影した長さを求める方法が知りたいです。
- 現在、楕円を回転させて投影する方法について考えていますが、直線の式を求めるところで行き詰まっています。他に簡単な求め方があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず、角度φだけ回転した楕円を角度-φ回転し直して標準形(x^2/a^2+y^2/b^2=1)に戻します。このとき、もとの座標でx軸となす角がψだった直線は-φの回転でx軸とのなす角が(ψ-φ)の直線になります、すなわち、この直線をLとすると、 L: y=tan(ψ-φ)・x という直線になります。一方、公式により、楕円上の点(x0,y0)における楕円の接線Tは、 T: (x0/a^2)x+(y0/b^2)y=1 と表わせるので、この接線の傾きが直線Lと垂直になるような点(x0,y0)を探します。接線Tの傾きmは、 m=-(b^2/a^2)(x0/y0) となるので、いま楕円上の点(x0,y0)を極座標表示で(a*cosθ、b*sinθ)と表わすと、 m=-(b^2/a^2)(a*cosθ/b*sinθ)=-(b/a)(1/tanθ) ... (1) となります。この傾きが、直線Lの傾きtan(ψ-φ)と直交するためには、 m*tan(ψ-φ)=-1 ... (2) とならなければいけません。すなわち、(1)、(2)式から、 -(b/a)(1/tanθ)*tan(ψ-φ)=-1 ⇒ tanθ=(b/a)*tan(ψ-φ) ... (3) となります。ここで、 cosθ=1/√(1+tanθ^2) sinθ=tanθ/√(1+tanθ^2) なので、(3)式を代入して整理すると、 cosθ=a/√(a^2+b^2*tan(ψ-φ)^2) sinθ=b*tan(ψ-φ)/√(a^2+b^2*tan(ψ-φ)^2) よって、 x0=a*cosθ=a^2/√(a^2+b^2*tan(ψ-φ)^2) y0=b*sinθ=b^2*tan(ψ-φ)/√(a^2+b^2*tan(ψ-φ)^2) ... (4) となります。いま、このようにして点(x0,y0)が求まったとすると、求める投影された線分の長さは原点(0,0)から接線Tまでの距離の2倍になります。そこで、原点から接線Tまでの距離をdとすると、点と直線との距離の公式により、 d=|(x0/a^2)*0+(y0/b^2)*0-1|/√((x0/a^2)^2+(y0/b^2)^2) =1/√((x0/a^2)^2+(y0/b^2)^2) =a^2*b^2/√(b^4*x0^2+a^4*y0^2) となります。よって求める投影線の長さは、 2*d=2*a^2*b^2/√(b^4*x0^2+a^4*y0^2) となります。あとは上の式に(4)の(x0,y0)を代入するだけです。
お礼
回答ありがとうございます。 なるほど、回転した楕円をもとに戻すのがミソなんですね。 だいぶ計算が楽になりました。 とても分かりやすい説明ありがとうございました。