ご訪問ありがとうございます。
前回の「結晶格子の座標変換」では、
Wikipedia「Lattice constant」に載っている、
(下図)結晶格子のベクトル表示図
に対して、
結晶の各軸を表す単位ベクトルを、
3次元(xyz)空間のベクトルとして表したい!
条件として、
ベクトルc をz軸に重ね、
ベクトルb をyz平面(x座標の値がゼロ)とする。
としました。
その後、いろいろ勉強していると、一般的と違っているような気がしました。
すなわち、
ベクトルa をx軸に重ね、
ベクトルb をxy平面(z座標の値がゼロ)とする
ことの方が、一般的(?)のような???
そこで、
条件を変更して、再度、変換式を求めてみました。
(1)ベクトルa
条件から、
x座標値はa、y座標値はゼロで、z座標値はゼロですね。
従って、ベクトルa のxyz座標は、{ a, 0, 0 } となりますネ。
(2)ベクトルb
条件から、
z標値はゼロですね。
次に、ベクトルb の先端からx軸に垂線(垂直な線)を引いて出来る
直角三角形を考えると、x軸からのなす角度が gamma だから、
x座標値は b*Cos[gamma]で、y座標値は b*Sin[gamma]となりますね。
従って、ベクトルb のxyz座標は、{ b*Cos[gamma], b*Sin[gamma], 0 } だナ。
(3)ベクトルc
ベクトル c の座標を { cx, cy, cz } で表す。
ベクトルc の先端からx軸に垂線を引いて出来る
直角三角形を考えると、x軸からのなす角度が beta だから、
x座標値(cx)は c*Cos[beta]ですね。
あと、y座標値、z座標値については、ベクトルb との内積を考える。
ベクトルc とベクトルb のなす角は alpha ということで、
cy = c*( Cos[alpha] - Cos[gamma] * Cos[beta] ) / Sin[gamma]
cz^2 = (c*Sin[beta])^2 - cy^2
ですね。
以上で、前回作ったPerlプログラムの改訂版:
3軸方向の長さ、a, b, c と、
各軸間のなす角度、alpha, beta, gamma を与えて、
ベクトルa、ベクトルb、ベクトルc のそれぞれのxyz座標を求める、
プログラムを作りました。
(以上を検証していて、
前回記事に2箇所の記述ミスがあることに気付きました。
御免なさい。青太字で訂正しておきます。)
と云うことで、今日の 部活動 は終了です。
やはり、部の名称変更が必要かも?
見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒
人気BlogRanking ⇒
P-NETBANKING ⇒
前回の「結晶格子の座標変換」では、
Wikipedia「Lattice constant」に載っている、
(下図)結晶格子のベクトル表示図
に対して、
結晶の各軸を表す単位ベクトルを、
3次元(xyz)空間のベクトルとして表したい!
条件として、
ベクトルc をz軸に重ね、
ベクトルb をyz平面(x座標の値がゼロ)とする。
としました。
その後、いろいろ勉強していると、一般的と違っているような気がしました。
すなわち、
ベクトルa をx軸に重ね、
ベクトルb をxy平面(z座標の値がゼロ)とする
ことの方が、一般的(?)のような???
そこで、
条件を変更して、再度、変換式を求めてみました。
(1)ベクトルa
条件から、
x座標値はa、y座標値はゼロで、z座標値はゼロですね。
従って、ベクトルa のxyz座標は、{ a, 0, 0 } となりますネ。
(2)ベクトルb
条件から、
z標値はゼロですね。
次に、ベクトルb の先端からx軸に垂線(垂直な線)を引いて出来る
直角三角形を考えると、x軸からのなす角度が gamma だから、
x座標値は b*Cos[gamma]で、y座標値は b*Sin[gamma]となりますね。
従って、ベクトルb のxyz座標は、{ b*Cos[gamma], b*Sin[gamma], 0 } だナ。
(3)ベクトルc
ベクトル c の座標を { cx, cy, cz } で表す。
ベクトルc の先端からx軸に垂線を引いて出来る
直角三角形を考えると、x軸からのなす角度が beta だから、
x座標値(cx)は c*Cos[beta]ですね。
あと、y座標値、z座標値については、ベクトルb との内積を考える。
ベクトルc とベクトルb のなす角は alpha ということで、
cy = c*( Cos[alpha] - Cos[gamma] * Cos[beta] ) / Sin[gamma]
cz^2 = (c*Sin[beta])^2 - cy^2
ですね。
以上で、前回作ったPerlプログラムの改訂版:
3軸方向の長さ、a, b, c と、
各軸間のなす角度、alpha, beta, gamma を与えて、
ベクトルa、ベクトルb、ベクトルc のそれぞれのxyz座標を求める、
プログラムを作りました。
(以上を検証していて、
前回記事に2箇所の記述ミスがあることに気付きました。
御免なさい。青太字で訂正しておきます。)
と云うことで、今日の 部活動 は終了です。
やはり、部の名称変更が必要かも?
見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒
人気BlogRanking ⇒
P-NETBANKING ⇒