update helicalscan

This commit is contained in:
2017-12-04 11:58:33 +01:00
parent e8a65357b7
commit d771169639
2 changed files with 272 additions and 165 deletions

View File

@@ -14,8 +14,83 @@ import os, sys, json
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d as plt3d
import matplotlib.animation as anim
from utilities import *
#ax.set_xlabel('Z');ax.set_ylabel('X');ax.set_zlabel('Y')
#plot coordinates: X Y Z
#data Z X Y
class Trf:
#https://stackoverflow.com/questions/6802577/python-rotation-of-3d-vector
@staticmethod
def rotZ(rad):
""" Return matrix for rotating about the z-axis by 'radians' radians """
c = np.cos(rad)
s = np.sin(rad)
m=np.identity(4)
m[0:2,0:2]=((c, -s),(s, c))
return m
@staticmethod
def rotY(rad):
""" Return matrix for rotating about the z-axis by 'radians' radians """
c = np.cos(rad)
s = np.sin(rad)
m=np.identity(4)
m[np.ix_((0,2),(0,2))]=((c, -s),(s, c))
return m
@staticmethod
def trans(v):
m=np.identity(4)
m[0:3, 3] = v
return m
class ExtAxes():#mpl.axes._subplots.Axes3DSubplot):
def __init__(self,ax):
self.ax=ax
ax.set_xlabel('Z');ax.set_ylabel('X');ax.set_zlabel('Y')
ax.view_init(elev=14., azim=10)
def setCenter(self,v,l):
ax=self.ax
#v=center vector, l= length of each axis
l2=l/2.
ax.set_xlim(v[2]-l2, v[2]+l2);
ax.set_ylim(v[0]-l2, v[0]+l2);
ax.set_zlim(v[1]-l2, v[1]+l2)
def pltOrig(self,m):
ax=self.ax
# m is a 4x4 matrix. the transformed matrix
r=m[:3,0] #1st
g=m[:3,1] #2nd
b=m[:3,2] #3rd
o=m[:3,3] #origin
hr=ax.plot((o[2],o[2]+r[2]), (o[0],o[0]+r[0]), (o[1],o[1]+r[1]), 'r')
hg=ax.plot((o[2],o[2]+g[2]), (o[0],o[0]+g[0]), (o[1],o[1]+g[1]), 'g')
hb=ax.plot((o[2],o[2]+b[2]), (o[0],o[0]+b[0]), (o[1],o[1]+b[1]), 'b')
return hr+hg+hb # this is a list
def my_anim_func(idx,horig):
print('anim')
a=idx*.01*2*np.pi
m=Trf.rotY(a)
r = m[:3, 0] # 1st
g = m[:3, 1] # 2nd
b = m[:3, 2] # 3rd
o = m[:3, 3] # origin
hr,hg,hb=horig
hr.set_data((o[2], o[2] + r[2]), (o[0], o[0] + r[0]))
hr.set_3d_properties((o[1], o[1] + r[1]))
hg.set_data((o[2], o[2] + g[2]), (o[0], o[0] + g[0]))
hg.set_3d_properties((o[1], o[1] + g[1]))
hb.set_data((o[2], o[2] + b[2]), (o[0], o[0] + b[0]))
hb.set_3d_properties((o[1], o[1] + b[1]))
class HelicalScan:
def __init__(self,args):
if args.cfg:
@@ -53,61 +128,89 @@ class HelicalScan:
eval('self.' + cmd)
def test_coord_trf(self):
n = 3.; per = 1.; t = np.arange(n)
p=((2.3,2.31,4.12,24.6),(6.2,2.74,32.1,3.28)) #(y, bias, ampl, phi)
d2r=2*np.pi/360
plt.ion()
fig = plt.figure()
#ax = fig.gca(projection='3d')
ax = fig.add_subplot(1,1,1,projection='3d')
extAx=ExtAxes(ax)
extAx.setCenter((0,5,15),10)
n = 3.; per = 1.; w = 2*np.pi*per/n*np.arange(n)
p=((2.3,0.71,4.12,10.6*d2r),(6.2,.45,3.2,45.28*d2r)) #(y, bias, ampl, phi)
self.param=param=np.ndarray((len(p),5))
z=4.5 # fix z position
z=14.5 # fix z position
pt=np.ndarray((4,3))
for i in range(2):
(y, bias, ampl, phi) =p[i]
x= ampl * np.cos(2 * np.pi * (per / n * t + phi / 360.)) + bias
x= ampl * np.cos(w+phi) + bias
print('yMeas_%d='%i+str(y)+' xMeas_%d='%i+str(x))
#param[i]=(z_i, y_i, x_i, r_i,phi_i)
param[i][0] =z
param[i][1] =y
param[i][2:]=HelicalScan.meas_rot_ctr(x) #(bias,ampl,phase)
pass
param[i,0] =z
param[i,1] =y
param[i,2:]=HelicalScan.meas_rot_ctr(x) #(bias,ampl,phase)
(bias, ampl, phase)=param[i][2:]
pt[i]=(bias, y, z)
pt[i+2]=(bias+ampl*np.cos(phase),y, z+ampl*np.sin(phase))
obj = mpl.patches.Circle((z,bias), ampl, facecolor=mpl.colors.colorConverter.to_rgba('r', alpha=0.3))
ax.add_patch(obj)
plt3d.art3d.pathpatch_2d_to_3d(obj, z=y, zdir="z")
ax.scatter(pt[:,2], pt[:,0], pt[:,1])
ax.plot(pt[2:,2], pt[2:,0], pt[2:,1], label='zs=0, zdir=z')
print param
#self.fwd_transform(param[0][1],0.,param[0][2],param[0][1])
#plt.show()
#m=np.identity(4); horig=extAx.pltOrig(m)
m=Trf.trans((0,0,z)); horig=extAx.pltOrig(m)
#self.fwd_transform(y ,w ,cx ,cz)
# y_0 ,0deg ,x_0 ,z_0)
m=self.fwd_transform(param[0][1],0,pt[2][0],pt[2][2],extAx)
m=self.fwd_transform(param[0][1],0,pt[2][0],pt[2][2],extAx)
m=self.fwd_transform(param[0][1],20*d2r,pt[2][0],pt[2][2])
extAx.pltOrig(m)
#my_anim_func(0,horig)
a=anim.FuncAnimation(fig,my_anim_func,25,fargs=(horig,),interval=50,blit=False)
plt.show()
# y_0 ,120deg ,x_0 ,z_0)
self.fwd_transform(param[0][1],2*np.pi/3.,param[0][2],param[0][0])
#self.fwd_transform(param[1][1],0.,param[1][2],param[1][3])
def fwd_transform(self,y,w,cx,cz):
def fwd_transform(self,y,w,cx,cz,extAx):
#cx,cy: coarse stage
#input: y,w,cx,cz
#output: y,w,dx,dz
m=Trf.trans((cx,y,cz))
m=m.dot(Trf.rotY(w))
extAx.pltOrig(m)
extAx.setCenter(m[0:3,3],1)
#TODO: NOT WORKING AT ALL NOW...
param=self.param
# param[i]=(z_i, y_i, x_i, r_i,phi_i)
p=np.ndarray((param.shape[0], 3))
for i in range(2):
#p[i][0]=param[i][2]+param[i][3]*np.cos(param[i][4]+w) # x= x_i+r_i*cos(phi_i*w)+cx
p[i][0]=cx+param[i][3]*np.cos(param[i][4]+w) # x= x_i+r_i*cos(phi_i*w)+cx
p[i][1]=param[i][1] # y= y_i
#p[i][2]=param[i][2]+param[i][3]*np.sin(param[i][4]+w) # z= z_i+r_i*sin(phi_i*w)
p[i][2] =cz + param[i][3] * np.sin(param[i][4] + w) # z= z_i+r_i*sin(phi_i*w)
(z_i, y_i, x_i, r_i, phi_i)=param[i]
p[i,0]=x_i+r_i*np.cos(phi_i+w) # x= x_i+r_i*cos(phi_i+w)+cx
p[i,1]=y_i # y= y_i
p[i,2] =z_i+r_i*np.sin(phi_i+w) # z= z_i+r_i*sin(phi_i*w)
print p
v=p[1]-p[0]
v=v/np.sqrt(v.dot(v)) # v/|v|
v=v*(y-param[0][1])/(param[1][1]-param[0][1]) # v(y)=v*(v-y_0)/(y_1-y_0)
y_0=param[0][1]
y_1=param[1][1]
v=v*(y-y_0)/(y_1-y_0) # v(y)=v*(v-y_0)/(y_1-y_0)
v=p[0]+v
cz + cx
#v=v/abs(v)
print v
#
#
#
#x,y,z
#returns y,w,dx,dz
pass
return m
def inv_transform(y,phi,dx=0,dz=0):
#input: y,w,dx,dz
#output: y,w,cx,cz
m=np.identity(4)
#dx,dy: deviation from cristal center line
#ps= #x,y,z
#returns y,phi,cx,cz
@@ -135,9 +238,11 @@ class HelicalScan:
# phi phase
# bias bias value
# ampl amplitude
d2r=2*np.pi/360
t = np.arange(n)
y=ampl*np.cos(2*np.pi*(per/n*t+phi/360.))+bias
w=2*np.pi*per/n*t
y=ampl*np.cos(w+phi*d2r)+bias
plt.figure(1)
plt.subplot(311)
plt.plot(t,y,'b.-')
@@ -155,7 +260,7 @@ class HelicalScan:
t2 = np.linspace(0,2*np.pi,64)
y2=ampl*np.cos(t2+phase)+bias
plt.plot(t2,y2,'g-')
plt.stem(t/n*2*np.pi*per,y,'b-')
plt.stem(w,y,'b-')
plt.show()

View File

@@ -133,11 +133,11 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.91503512"
inkscape:cx="61.236951"
inkscape:cy="572.69075"
inkscape:zoom="1.3382855"
inkscape:cx="183.81592"
inkscape:cy="755.54223"
inkscape:document-units="px"
inkscape:current-layer="g3894"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1871"
inkscape:window-height="1176"
@@ -172,317 +172,319 @@
<ellipse
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4138"
cx="335.5954"
cy="182.45689"
cx="421.52625"
cy="192.17082"
rx="64.310562"
ry="16.077641" />
<ellipse
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4138-3"
cx="335.5954"
cy="364.42032"
cx="421.52625"
cy="374.13425"
rx="131.10408"
ry="32.77602" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 335.59539,118.92292 0,327.66276"
d="m 421.52623,128.63684 0,327.66276"
id="path4155"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.64089721;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 90.847197,182.4569 361.087653,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.72086537;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 81.046669,192.17082 456.819021,0"
id="path4157"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 295.29607,222.81599 370.01916,148.0929"
d="M 381.22691,232.52991 455.95,157.80682"
id="path4159"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.67468059;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 92.933786,364.42032 400.158704,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.70889032;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 137.25568,374.13424 441.76765,0"
id="path4157-6"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.61177063;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 285.81401,414.37511 377.2408,322.94832"
d="m 371.74485,424.08903 91.42679,-91.42679"
id="path4159-7"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#DotM);marker-end:url(#DotM)"
d="M 229.92096,383.63385 375.15264,195.45428"
d="M 315.8518,393.34777 461.08348,205.1682"
id="path4179"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5095)"
d="m 25.573679,473.75772 583.399551,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.90318346px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5095)"
d="m 123.40453,285.21328 475.90257,0"
id="path4863"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="m 43.954761,498.53222 0,-463.522935"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.74592245px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="m 233.72158,329.00902 0,-257.904304"
id="path4865"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4867"
d="M 35.233586,484.34143 279.37986,240.19516"
d="M 279.37986,240.19516 35.233589,484.34143"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.63367343;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5049)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="578.60449"
y="458.57333"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="574.12115"
y="280.73386"
id="text4965"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4967"
x="578.60449"
y="458.57333">x</tspan></text>
x="574.12115"
y="280.73386">x</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="52.745712"
y="54.988724"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="217.59642"
y="87.74752"
id="text4969"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4971"
x="52.745712"
y="54.988724">y</tspan></text>
x="217.59642"
y="87.74752">y</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="242.94995"
y="261.97568"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="55.3997"
y="452.32724"
id="text4973"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4975"
x="242.94995"
y="261.97568">z</tspan></text>
x="55.3997"
y="452.32724">z</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 348.04179,362.07266 217.57607,386.44758"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 433.97263,371.78658 303.50691,396.1615"
id="path5141"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 326.464,179.26081 56.7416,19.97944"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 412.39484,188.97473 56.7416,19.97944"
id="path5143"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
id="ellipse5150"
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.15941836;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
transform="scale(-1,1)"
sodipodi:type="arc"
sodipodi:cx="-336.79416"
sodipodi:cy="363.82095"
sodipodi:cx="-422.72501"
sodipodi:cy="373.53488"
sodipodi:rx="20.900398"
sodipodi:ry="5.2250996"
sodipodi:start="3.0626771"
sodipodi:end="0.72911685"
d="m -357.62951,364.23287 a 20.900398,5.2250996 0 0 1 14.00007,-5.34969 20.900398,5.2250996 0 0 1 24.23216,2.04192 20.900398,5.2250996 0 0 1 -1.81013,6.37687"
sodipodi:start="0.47984631"
sodipodi:end="3.2616514"
d="m -404.18498,375.94701 a 20.900398,5.2250996 0 0 1 -24.71557,2.57967 20.900398,5.2250996 0 0 1 -14.5744,-5.61761"
transform="scale(-1,1)"
sodipodi:open="true" />
<path
id="ellipse5152"
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:type="arc"
sodipodi:cx="335.5954"
sodipodi:cy="182.45689"
sodipodi:cx="421.52625"
sodipodi:cy="192.17082"
sodipodi:rx="18.581232"
sodipodi:ry="4.645308"
sodipodi:start="0.94527877"
sodipodi:end="0.0049500353"
d="m 346.47502,186.22266 a 18.581232,4.645308 0 0 1 -22.99427,-0.24354 18.581232,4.645308 0 0 1 -4.40853,-5.64718 18.581232,4.645308 0 0 1 20.94057,-2.38717 18.581232,4.645308 0 0 1 14.16361,4.53512"
sodipodi:start="6.0151975"
sodipodi:end="1.0471386"
d="m 439.44423,190.94078 a 18.581232,4.645308 0 0 1 -8.62642,5.25286"
sodipodi:open="true" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
x="354.63498"
y="358.07678"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="428.61023"
y="384.22964"
id="text5154"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5156"
x="354.63498"
y="358.07678">φ<tspan
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="428.61023"
y="384.22964">φ<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5158">s</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;baseline-shift:baseline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="383.2056"
y="205.23409"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;baseline-shift:baseline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="469.13644"
y="214.94801"
id="text5188"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5190"
x="383.2056"
y="205.23409">p<tspan
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="469.13644"
y="214.94801">p<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5192">e</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="226.54257"
y="405.36362"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="312.47342"
y="415.07755"
id="text5194"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5196"
x="226.54257"
y="405.36362">p<tspan
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="312.47342"
y="415.07755">p<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5198">s</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text5200"
y="177.46268"
x="305.48557"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
y="187.17661"
x="435.12906"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="177.46268"
x="305.48557"
y="187.17661"
x="435.12906"
id="tspan5202"
sodipodi:role="line">φ<tspan
id="tspan5204"
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;">e</tspan></tspan></text>
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub">e</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="78.080482"
y="365.4006"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="113.81639"
y="375.64291"
id="text5206"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5208"
x="78.080482"
y="365.4006">y<tspan
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="113.81639"
y="375.64291">y<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5210">s</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="72.106689"
y="183.77333"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="64.260834"
y="192.74004"
id="text5212"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5214"
x="72.106689"
y="183.77333">y<tspan
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="64.260834"
y="192.74004">y<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5216">e</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Size1;font-stretch:normal;font-variant:normal;"
x="-44.847584"
y="412.73996"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="3.9073553"
y="484.16422"
id="text5218"
sodipodi:linespacing="125%"
transform="matrix(0.65298954,-0.75736693,0.75736693,0.65298954,0,0)"><tspan
sodipodi:role="line"
id="tspan5220"
x="-44.847584"
y="412.73996">v crystal</tspan></text>
x="3.9073553"
y="484.16422">v crystal</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="271.81494"
y="385.5397"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="357.74579"
y="395.25363"
id="text5222"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5224"
x="271.81494"
y="385.5397">r<tspan
style="font-size:65%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="357.74579"
y="395.25363">r<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5226">s</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
x="349.51669"
y="192.83932"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="439.08008"
y="203.08162"
id="text5228"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan5230"
x="349.51669"
y="192.83932">r<tspan
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;"
x="439.08008"
y="203.08162">r<tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub"
id="tspan5232">e</tspan></tspan></text>
<path
inkscape:connector-curvature="0"
id="path4228"
d="m 95.453991,425.98555 0,-252.06849"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.53547764;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
d="m 85.856928,445.65589 0,-261.31492"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.54521042;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4230"
cx="95.573181"
cy="182.52617"
cx="85.865181"
cy="192.17082"
r="0.56510383" />
<circle
r="1.0897936"
cy="423.94144"
cx="95.394531"
cy="433.67297"
cx="85.856926"
id="circle4232"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.92848384;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.40831339;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
r="0.7958433"
inkscape:transform-center-x="-4.2929873"
inkscape:transform-center-y="-0.39627575" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.40831339;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle4234"
cx="95.414505"
cy="364.47595"
r="0.56510383" />
cx="145.47098"
cy="374.18094"
r="0.7958433" />
<text
sodipodi:linespacing="125%"
id="text4236"
y="176.86328"
x="168.22685"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
y="186.57721"
x="254.1577"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="176.86328"
x="168.22685"
y="186.57721"
x="254.1577"
id="tspan4238"
sodipodi:role="line">x<tspan
id="tspan4240"
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;">e</tspan></tspan></text>
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub">e</tspan></tspan></text>
<text
sodipodi:linespacing="125%"
id="text4242"
y="360.27451"
x="178.6162"
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:MathJax_Caligraphic;font-stretch:normal;font-variant:normal;"
y="369.98843"
x="264.54703"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:MathJax_Caligraphic;-inkscape-font-specification:MathJax_Caligraphic;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="360.27451"
x="178.6162"
y="369.98843"
x="264.54703"
id="tspan4244"
sodipodi:role="line">x<tspan
id="tspan4246"
style="font-size:64.99999762%;baseline-shift:sub;-inkscape-font-specification:MathJax_Size1;font-family:MathJax_Size1;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;">s</tspan></tspan></text>
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:64.99999762%;font-family:MathJax_Size1;-inkscape-font-specification:MathJax_Size1;baseline-shift:sub">s</tspan></tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 227.50298,395.59134 7.00627,0 -3.10069,-2.33388"
d="m 313.43382,405.30526 7.00627,0 -3.10069,-2.33388"
id="path4248"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4262"
d="m 384.17801,196.53353 7.00627,0 -3.10069,-2.33388"
d="m 470.10885,206.24745 7.00627,0 -3.10069,-2.33388"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.93431133px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 275.11314,296.37008 4.97745,-4.93079 -3.84533,0.52411"
d="m 361.04398,306.084 4.97745,-4.93079 -3.84533,0.52411"
id="path4264"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4266"
d="m 89.507876,423.95904 383.205594,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.66023415;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
d="m 73.992127,433.67296 484.652183,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.7425012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<flowRoot
style="font-style:normal;font-weight:normal;font-size:15px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="flowRoot4323"
@@ -642,7 +644,7 @@
height="195.07448"
x="25.135647"
y="572.0528" /></flowRegion><flowPara
id="flowPara3571"></flowPara></flowRoot> <g
id="flowPara3571" /></flowRoot> <g
id="g3873"
transform="translate(6.9548817,-37.092702)">
<text
@@ -923,5 +925,5 @@
height="54.642712"
x="56.828419"
y="805.37714" /></flowRegion><flowPara
id="flowPara3858"></flowPara></flowRoot> </g>
id="flowPara3858" /></flowRoot> </g>
</svg>

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB