• ベストアンサー

ある平面上の円周の座標の求め方

原点(0,0,0),法線(a,b,c)で表される平面上にある、 半径rの円の円周のx,y,z座標をrと角度θを用いて表したいのですが、 どのように表現できますでしょうか? どなたかご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.3

(a,b,c)は点の座標または法線の方向ベクトルしか決まらず、法線や平面が確定できません。 逆に平面が確定すれば、法線ベクトルが確定します(1つとその逆向きの2つの法線ベクトルが存在します)。法線は確定しません。 たとえば、平面の方程式を 「ax+by+cz=1」を与えると、法線の方向ベクトル(法線ベクトル)が確定しますが、法線(という直線)は通る点を1つ指定しないと確定しません。 原点(0,0,0)を通る法線なら(x,y,z)=t(a,b,c) (tは媒介変数)で表せます。 この法線に直角な平面は無数に存在するので、平面上の一点または法線上の一点を通る平面と指定してやると平面が確定します。 平面が確定すると、平面の上に、中心と半径を指定してやると円が確定します。 以上を逆に辿って考えると、原点を中心とする半径Rの円の方程式を  (x,y,z)=(Rcosω,Rsinω,0) (R>0,0≦ω<2π) … (☆) とします。この法線方向単位ベクトルは(0,0,1)(z軸の単位ベクトルと同じ)、法線を z軸つまり(x,y,z)=(0,0,t)(tは媒介変数)と表しておきます。 一方、平面をax+bx+cz=1 …(■)の法線方向単位ベクトルは  (a,b,c)/√(a^2+b^2+c^2) で表せます。 これを球座標のパラメータを使って表すと  (cosθsinφ,sinθsinφ,cosφ) ただし、  cosφ=c/√(a^2+b^2+c^2),sinφ=√(a^2+b^2)/√(a^2+b^2+c^2),  cosθ=a/c,sinθ=b/c   …(★) となります。 原点を通るこの平面の法線は(x,y,z)=t(a,b,c)で表せます。 平面:ax+bx+cz=1の法線方向単位ベクトル(cosθsinφ,sinθsinφ,cosφ)をz軸方向単位ベクトル(0,0,1)に写像する回転行列Mは  M=M1M2 ここで  z軸を中心に時計方向にφ回転する行列M1   M1=[[cosφ,-sinφ,0],[sinφ,cosφ,0],[0,0,1]]  y軸を中心に時計方向にθ回転する行列M2   M2=[[cosθ,0,-sinθ],[0,1,0],[sinθ,0,cosθ]] Mを計算すると  M=[cos(s)*cos(t),-sin(s),-cos(s)*sin(t)],   [sin(s)*cos(t),cos(s),-sin(s)*sin(t)],   [sin(t),0,cos(t)] (☆)の円周上の点(x,y,z)と原点を通り(■)の平面に平行な平面…(◆)に写像したときの座標(X,Y,Z)の間には  (x,y,z)=(X,Y,Z)M という関係があるから、(x,y,z)を計算すると  (x,y,z)=(sin(t)Z+sin(s)cos(t)Y+cos(s)cos(t)X,  cos(s)Y-sin(s)X,  cos(t)Z-sin(s)sin(t)Y-cos(s)sin(t)X) この(x,y,z)のx,yを(☆)の円:  x^2+y^2=R^2 に代入してやれば(X,Y,Z)の座標間の関係式(写像された円の式)が求まります。 また   (X,Y,Z)=(x,y,z)M^-1=(Rcosω,Rsinω,0) …(▲) M^-1はMの逆行列で計算すると  M^-1=[cosφcosθ,sinφcosθ,sinθ] [-sinφ,cosφ,0] [-cosφsinθ,-sinφsinθ,cosθ]  ただし、φ,θのcos,sinは(★)の式で与えられる。 (▲)を計算すれば、(◆)に写像された円周上の点の座標が得られます。  (X,Y,Z)=(aRcosω/√(a^2+b^2)-R√(a^2+b^2)sinω/√(a^2+b^2+a^2), cRsinω/√(a^2+b^2)+aR√(a^2+b^2)cosω/(c√(a^2+b^2+c^2)), (bR/c)cosω) と得られます。 この写像された平面(◆)上の円を平面(■)上の点(円の中心座標)(xo,yo,zo) まで並行移動すれば求める円周上の点(x,y,z)=(X+xo,Y+yo,Z+zo)が得られます。 ここで、円の中心座標(xo,yo,zo)は平面(■)上の点なので axo+byo+czo=1を満たします。 >半径rの円の円周上の(x,y,z)座標をrと角度θを用いて表したいのですが、 どのように表現できますでしょうか? 上記の解析では極座標のr,θと混乱するので、r→R,θ→ωと置き換えていますので、必要があれば、もとのr,θに置き換えて下さい。 (x,y,z)=(xo+aRcosω/√(a^2+b^2)-R√(a^2+b^2)sinω/√(a^2+b^2+a^2), yo+cRsinω/√(a^2+b^2)+aR√(a^2+b^2)cosω/(c√(a^2+b^2+c^2)), zo+(bR/c)cosω) ただし、axo+byo+czo=1

参考URL:
http://ft-lab.ne.jp/cgi-bin/wiki.cgi?page=%A5%A2%A5%D5%A5%A3%A5%F3%CA%D1%B4%B9_3DCG
nomonomonomo
質問者

お礼

>(a,b,c)は点の座標または法線の方向ベクトルしか決まらず、法線や平面が確定できません。 すみません、点ではなく、ベクトル(x、y、z)の誤りでした。 原点から(x,y,z)へのベクトルを示しているつもりでした。 申し訳ありません。 ご丁寧な説明ありがとうございました。 大変参考になりました!

その他の回答 (3)

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.4

→u = (x0,y0,z0) / √(x0^2+y0^2+z0^2) →v = (→u) × (a,b,c) ←外積 →w = (→v) / |→v| と置くと、 { →u, →w } が問題の平面の正規直交基底となりますから、 円は (r cosθ)(→u)+(r sinθ)(→w) と媒介変数表示されます。 成分計算は、御自分で。 (求めかたを説明するよりも、答えを書いたほうが 喜ばれるのでしょうが、主義に反するので…)

nomonomonomo
質問者

お礼

いえ、とんでもないです、ご説明ありがとうございます。 数学から離れて久しいので、頑張って計算してみます!

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

点(a,b,c)をz軸上に移動させる回転行列をP、その逆行列をQ、 z軸を回転軸としてθ回転させる回転行列をRとすれば、 B=QRPA となります(A,Bは点A,Bの位置ベクトル)。

noname#152422
noname#152422
回答No.1

たとえば、その平面がどこを通るのかわからないと確定しません。 法線だけ与えられていてもそれに平行な平面が沢山あります。 また、角度θがどれとどれのなす角かわからないと答えようがないです。

nomonomonomo
質問者

補足

すみません、完全に説明不足でした。 平面は法線(a,b,c)と原点O(0,0,0)からなる平面です。 円の中心は原点Oで、円周上に点A(x0,y0,z0)と点B(x,y,z)を考え、 OとAを結ぶ線分OAにBから垂直に下ろした線との交点をPとします。 この時の点B、P、原点Oの3つで作られる直角三角形の原点部分の角度をθとして下さい。 この時のBの座標をr、θ、点Aの座標の値(x0、y0、z0)を使って表せますでしょうか?

関連するQ&A

  • 楕円の円周上の座標を求める計算式を教えて下さい。

    原点(0,0),長軸a,短軸bとする楕円上で、原点から角度シータの位置にある楕円の円周上の座標(x,y)を求める計算式を教えて下さい。 単純に、acosθ,bsinθで求めると、なんだか座標値がおかしくなるのですが。

  • 座標変換について

    座標系XYZの空間に点A(X1,Y1,Z1)、点B(X2,Y2,Z2)、点C(X3,Y3,Z3)があります。 この3点を通る円の中心をP(X0,Y0,Z0)とし、 円の存在する平面をx'y'平面とします。 さらに原点を点P、x'軸はPAを通る直線とします。 座標系x'y'z'から円周上の点D(X',Y',Z')を求め 座標系XYZに変換した(X4,Y4,Z4)を求めたいのですが、どうすればよいのでしょうか? 以下のようにすれば求まると思うのですが角度α、β、γの求め方が分かりません。 X'' = X' * cosα - Y' * sinα Y'' = X' * sinα + Y' * cosα Z'' = Z' X''' = X'' Y''' = Y'' * cosβ - Z'' * sinβ Z''' = Y'' * sinβ + Z'' * cosβ X4 = X''' * cosγ + Z''' * sinγ Y4 = Y''' Z4 = Z''' * cosγ - X''' * sinγ よろしくお願いします。

  • 平面ベクトルの例題

    次の問題の解答がよくわからないです 3次元空間において、原点を通り法線ベクトルが(a,b,c)である平面pがある。空間の点(x,y,z)に対し平面に関して対称の位置にある点を(x',y',z')とする。x',y',z'をa,b,c,x,y,zで表せ。  たぶん a(x+x'/2 -x)+b(y+y'/2 -y)+c(z+z'/2 -z)=0になると思いますがそこからそれぞれをabcxyzのみでどう表すのかわかりません。 教えてください。

  • 円周上の座標値

    どもです。 よろしくお願いします。 半径160の円があるとします。 中心座標を(0,0)とした場合のA点を(0,160)の位置とします。 このA点が円周上に沿って移動した場合のX・Y軸の値を求めたいのですがどのように計算すればよいでしょうか? 例えば、円周上に沿って2.0に移動した場合X・Yの値が幾つになるのかを知りたいのです。 一応、関数電卓があります。

  • 3D座標上のベクトルをを2D平面に投影・・・

    まず、3次元座標上のあるベクトル(例:(x、y、z)=(1,1,1))をx-z平面上に投影します。 その投影された、ベクトルとx軸の成す角度を、ラジアンか角度で算出したいのですが、C++でどう書いていいのかわかりません。 アルゴリズムがわかっていても、C++でかけないという初心者です。 誰か、算出の方法を教えてください。お願いします。

  • 立体の体積 極座標 (二重積分)

    次の立体の体積を求めよ。 (1)曲面z=4-(x^2)-(y^2)とxy平面で囲まれた立体 (2)球(x^2)+(y^2)+(z^2)=4が、円柱(x^2)+(y^2)=2xで切り取られる部分。 二重積分と極座標を用いるってのはわかりましたが、半径をr,角度をθとすると、それらの積分区間がわかりません。よろしくお願いします。

  • 円筒座標系と球座標系の単位ベクトルに関して

    直角座標系以外の円筒座標系と球座標系の位置ベクトルに関して質問があります。 まずは、円筒座標系から。 「円筒座標系で、原点とP(r,φ,z)との間のベクトルを求めよ」 直角座標系の場合だと、x,y,zのそれぞれの方向の単位ベクトルとそれぞれの方向の成分を 掛け合わせることで、ベクトルを表現できると思います。 しかし、円筒座標系の場合はどうなのでしょうか? 単純にx,y,zと同じようにr,φ,zについての単位ベクトルをa,b,c(例として)とし、成分を掛け合わせ OP=r*a+φ*b+z*c となるのでしょうか? しかし、これではおかしいと感じます。というのも、 とくにφはいったいどういう向きの単位ベクトルなんでしょうか? 円方向の単位ベクトルってことになるんでしょうかね? そうでなければ、座標変換して x=r*cosφ y=r*sinφ z=Z として、直交座標の場合と同じようにやるのでしょうか? 球座標系に関しても同じ質問です。

  • ある平面に対する座標変換

    空間上に(x,y,z)の点があるとします。 この点を、ある平面 ax + by+ cz + d = 0 から見た時の値(x',y',z')に変換したいのですが、どうやったらいいかわかりません。 座標系が、xyz-座標から新しい座標系、x'y'z'-座標に変わるのですが、どうやれば、いいかわかりません。回転させるだけなら、それほど、難しくないと思うのですが、それだけじゃないので、わからないです。 よろしくお願いいたします。

  • 円周上の座標

    はじめまして。 課題の関係で円周上の座標を求めなくてはならなくなったのですが、 三角関数などを使えばいいのでしょうか? 問題の言い方もつたなくて申し訳ないのですが、 まず、xy座標軸上に、(0, 0)を中心にした半径1の円があります。 その円周上に、n個の点があります。 それぞれの点の、円周上を通った距離は同じです。 個数nが指定された時の、それぞれの点の座標を求めます。 n=4なら、360÷4=90で、円の中心から90°、180°、270°、360°の角度に延ばした直線と、円の交点の座標を求めることになると思います。 これらの円周上の座標を求めるにはどうすればいいのでしょうか? 分かりにくくて申し訳ないのですが、宜しくお願いします。

  • 【座標】あるラインから半径r離れた新ラインの座標

    3次元の座標、点A(0, 0, 0)、点B(100, 0, 0)、点C(100, 100, 0)、点D(100, 100, 100) を結んだラインがあります。 このラインを中心に、半径r離れた円周上に、中心のラインと並走するように、 新ラインを10本配置し、パイプのような形状を表現したい場合、 新ライン10本の座標はどのような計算をすればよいでしょうか? X軸方向、Y軸方向、Z軸方向には直角にしか曲がりません。