예제 #1
0
pic.set_xlim(-110, 360)
mirrors = genmirrors(geometry)
pathplots, mirrorplots = [], []
for o in [-omega, omega, 0]:
    path = pol.straightline(geometry['focus'], o).mirrorpath(mirrors).T
    c = 'red' if o else 'darkgreen'
    pathplots.append(pic.plot(path[0], path[1], '-', color=c, lw=2)[0])
    if not o:
        mirrors2 = genmirrors2(path.T[1:5], geometry['angle'])
for i, m in enumerate(mirrors2):
    M = np.array([m.goto(-geometry['msize'][i]), m.goto(geometry['msize'][i])])
    mirrorplots.append(pic.plot(M[:, 0], M[:, 1], '-', color='black', lw=2)[0])
# }}}

# {{{ polarization and reflectivity
mirror = pol.mirror(mirrordef)
angles = np.arange(np.pi / 4, np.pi / 2, .01)
plotangle = np.rad2deg(np.pi / 2 - angles)
Rd = np.array([mirror.get_Rd(a) for a in angles])
pic2 = fig.add_subplot(212)
# angle-direction is reversed (grazing incidence vs. normal incidence)
DoP = np.sin(4 * Rd[:, 2])
plot_DoP = pic2.plot(plotangle, DoP, lw=2, color='darkviolet')
# pic2.axhline(90, ls='-.', color='black')
pic2.set_xlabel('incidence angle (deg)')
pic2.set_ylabel('total phasediff (deg)')
m1 = pic2.axvline(np.rad2deg(geometry['angle']), color='darkgreen', lw=2)
m2 = pic2.axvline(np.rad2deg(geometry['angle'] - omega), color='red', lw=2)
m3 = pic2.axvline(np.rad2deg(geometry['angle'] + omega), color='red', lw=2)
pic3 = pic2.twinx()
pic3.set_ylabel('total reflectivity')