
3 次元の任意のベクトルに垂直な平面上の角度にラベルを付けようとしています。ラベル
$\omega t$
にXY()
XY()、XZ()、YZ() の組み合わせを掛けようとしましたが、うまくいきませんでした。何か提案はありますか?
settings.render=6;
settings.outformat="pdf";
usepackage("bm");
// import modules
import graph3;
import three;
import solids;
// overall settings
currentprojection=orthographic(.25,.5,.1);
viewportmargin=(10,10);
size(6cm);
currentlight=((3,3,0));
// variable parameters
real r=1;
real radio=sqrt(1-(cos(pi/8))^2);
real theta1=0, theta2=112.5;
real phi1=0, phi2=65;
// axes
xaxis3("$\bm{e}_1$",0,r,black,Arrow3);
yaxis3("$\bm{e}_2$",0,r,black,Arrow3);
zaxis3("$\bm{e}_3$",0,r,black,Arrow3);
//This draws a rotated frame theta=pi/8, varphi=pi/8
triple x3=(0.3535533905932738,0.1464466094067262,0.9238795325112868);
triple x2=(-0.3826834323650898,0.9238795325112868,0);
triple x1=(0.8535533905932738,0.3535533905932738,-0.3826834323650898);
triple centro=cos(pi/8)*x3;
triple spinproyxy=(-0.8741514406663723,0.4032814824381883,0.2705980500730985);
draw(O--x2,black+dashed,Arrow3,L=Label("$\bm{e}_2'$",position=EndPoint));
draw(O--x1,black+dashed,Arrow3,L=Label("$\bm{e}_1'$",position=EndPoint));
draw(O--x3, black+dashed,Arrow3,L=Label("$\bm{e}_3'$", position=EndPoint,SE));
//Circle[![enter image description here][1]][1]
path3 mycircleB=circle(c=O,r=1,normal=x3);
draw(surface(mycircleB),gray+opacity(.3));
draw(mycircleB,black+opacity(.3));
//This draws the angle ometa t
draw(arc(c=O,x1*.2,x2*.2, normal=x3), black+linewidth(.5pt),Arrow3(TeXHead2),L=Label("XY()*$\Large\omega t$", position=MidPoint,S));
答え1
などの式をどのようにして得たのかはわかりませんx1
。粒子データ グループの標準規則では、 によって形成される直交行列には(x1,x2,x3)^T
混合角 がありtheta1=pi/8
、これはコメントと一致し、theta2=3*pi/8
はコメントとほぼ一致する程度です。ただし、規則は異なる場合があります。いずれにしても、マイナス記号を導入しXY()
て で変換するrotate(22.5,Y)*rotate(-22.5,Z)
と、妥当な結果が得られます。このマイナス記号は規則の問題である可能性があります。または、より可能性が高いのは、より適切な回転パラメータがある可能性があることです。 をどのように計算したかについて、より詳細に提供していただければ、非常に役立ちます(x1,x2,x3)
。
\documentclass{standalone}
\usepackage{asypictureB}
\standaloneenv{asypicture}
\begin{document}
\begin{asypicture}{name=disc}
settings.outformat = "pdf";
settings.prc = false;
settings.render = 0;
usepackage("bm");
// import modules
import graph3;
import three;
import solids;
// overall settings
currentprojection=orthographic(.25,.5,.1);
viewportmargin=(10,10);
size(6cm);
currentlight=((3,3,0));
// variable parameters
real r=1;
real radio=sqrt(1-(cos(pi/8))^2);
real theta1=0, theta2=112.5;
real phi1=0, phi2=65;
// axes
xaxis3("$\bm{e}_1$",0,r,black,Arrow3);
yaxis3("$\bm{e}_2$",0,r,black,Arrow3);
zaxis3("$\bm{e}_3$",0,r,black,Arrow3);
//This draws a rotated frame theta=pi/8, varphi=pi/8
triple x3=(0.3535533905932738,0.1464466094067262,0.9238795325112868);
triple x2=(-0.3826834323650898,0.9238795325112868,0);
triple x1=(0.8535533905932738,0.3535533905932738,-0.3826834323650898);
triple centro=cos(pi/8)*x3;
triple spinproyxy=(-0.8741514406663723,0.4032814824381883,0.2705980500730985);
draw(O--x2,black+dashed,Arrow3,L=Label("$\bm{e}_2'$",position=EndPoint));
draw(O--x1,black+dashed,Arrow3,L=Label("$\bm{e}_1'$",position=EndPoint));
draw(O--x3, black+dashed,Arrow3,L=Label("$\bm{e}_3'$", position=EndPoint,SE));
//Circle
path3 mycircleB=circle(c=O,r=1,normal=x3);
draw(surface(mycircleB),gray+opacity(.3));
draw(mycircleB,black+opacity(.3));
//This draws the angle omega t
draw(arc(c=O,x1*.2,x2*.2, normal=x3), black+linewidth(.5pt),Arrow3(TeXHead2),
L=Label(rotate(22.5,Y)*rotate(-22.5,Z)*XY()*"$\Large\omega t$", position=MidPoint,S));
\end{asypicture}
\end{document}