1import three;
2import math;
3texpreamble("\usepackage{bm}");
4
5size(300,0);
6
7pen thickp=linewidth(0.5mm);
8real radius=0.8, lambda=37, aux=60;
9
10currentprojection=perspective(4,1,2);
11
12// Planes
13pen bg=gray(0.9)+opacity(0.5);
14draw(surface((1.2,0,0)--(1.2,0,1.2)--(0,0,1.2)--(0,0,0)--cycle),bg);
15draw(surface((0,1.2,0)--(0,1.2,1.2)--(0,0,1.2)--(0,0,0)--cycle),bg);
16draw(surface((1.2,0,0)--(1.2,1.2,0)--(0,1.2,0)--(0,0,0)--cycle),bg);
17
18real r=1.5;
19pen p=rgb(0,0.7,0);
20draw(Label("$x$",1),O--r*X,p,Arrow3);
21draw(Label("$y$",1),O--r*Y,p,Arrow3);
22draw(Label("$z$",1),O--r*Z,p,Arrow3);
23label("$\rm O$",(0,0,0),W);
24
25// Point Q
26triple pQ=radius*dir(lambda,aux);
27draw(O--radius*dir(90,aux),dashed);
28label("$\rm Q$",pQ,N+3*W);
29draw("$\lambda$",arc(O,0.15pQ,0.15*Z),N+0.3E);
30
31// Particle
32triple m=pQ-(0.26,-0.4,0.28);
33real width=5;
34dot("$m$",m,SE,linewidth(width));
35draw("$\bm{\rho}$",(0,0,0)--m,Arrow3,PenMargin3(0,width));
36draw("$\bm{r}$",pQ--m,Arrow3,PenMargin3(0,width));
37
38// Spherical octant
39real r=sqrt(pQ.x^2+pQ.y^2);
40draw(arc((0,0,pQ.z),(r,0,pQ.z),(0,r,pQ.z)),dashed);
41draw(arc(O,radius*Z,radius*dir(90,aux)),dashed);
42draw(arc(O,radius*Z,radius*X),thickp);
43draw(arc(O,radius*Z,radius*Y),thickp);
44draw(arc(O,radius*X,radius*Y),thickp);
45
46// Moving axes
47triple i=dir(90+lambda,aux);
48triple k=unit(pQ);
49triple j=cross(k,i);
50
51draw(Label("$x$",1),pQ--pQ+0.2*i,2W,red,Arrow3);
52draw(Label("$y$",1),pQ--pQ+0.32*j,red,Arrow3);
53draw(Label("$z$",1),pQ--pQ+0.26*k,red,Arrow3);
54
55draw("$\bm{R}$",O--pQ,Arrow3,PenMargin3);
56draw("$\omega\bm{K}$",arc(0.9Z,0.2,90,-120,90,160,CW),1.2N,Arrow3);
57