In [ ]:
import batoid
from batoid.utils import normalized
import numpy as np
from ipywidgets import interact
import ipywidgets as widgets
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline
In [ ]:
fiducial_telescope = batoid.Optic.fromYaml("HSC.yaml")
In [ ]:
fig1 = plt.figure(figsize=(12, 11))
ax1 = fig1.add_subplot(111)
fiducial_telescope.draw2d(ax1, c='k')
fig2 = plt.figure(figsize=(12, 11))
ax2 = fig2.add_subplot(111, projection='3d')
fiducial_telescope.draw3d(ax2, c='k')
p0_left = np.array([-2.5, 0, 0])
p0_right = np.array([2.5, 0, 0])
p0_lmid = np.array([-1.5, 0, 0])
p0_rmid = np.array([1.5, 0, 0])
v_left = normalized(np.array([-0.008, 0, -1]))
v_mid = normalized(np.array([0, 0, -1]))
v_right = normalized(np.array([0.008, 0, -1]))
for v, c in zip([v_left, v_mid, v_right], ['#377eb8', '#ff7f00', '#4daf4a']):
rays = []
for p0 in [p0_left, p0_lmid, p0_rmid, p0_right]:
ray = batoid.Ray(p0, v, t=0, wavelength=500e-9)
p0 = ray.positionAtTime(-18)
rays.append(batoid.Ray(p0, v, t=0, wavelength=500e-9))
traceFull = fiducial_telescope.traceFull(batoid.RayVector(rays))
batoid.drawTrace2d(ax1, traceFull, c=c)
batoid.drawTrace3d(ax2, traceFull, c=c)
In [ ]:
fig1 = plt.figure(figsize=(12, 11))
ax1 = fig1.add_subplot(111)
fiducial_telescope['SubaruHSC.HSC'].draw2d(ax1, c='k')
ax1.set_xlim(ax1.get_xlim())
ax1.set_ylim(ax1.get_ylim())
fig2 = plt.figure(figsize=(12, 11))
ax2 = fig2.add_subplot(111, projection='3d')
fiducial_telescope['SubaruHSC.HSC'].draw3d(ax2, c='k')
ax2.set_xlim(ax2.get_xlim())
ax2.set_ylim(ax2.get_ylim())
ax2.set_zlim(ax2.get_zlim())
p0_left = np.array([-2.5, 0, 0])
p0_right = np.array([2.5, 0, 0])
p0_lmid = np.array([-1.5, 0, 0])
p0_rmid = np.array([1.5, 0, 0])
v_left = normalized(np.array([-0.008, 0, -1]))
v_mid = normalized(np.array([0, 0, -1]))
v_right = normalized(np.array([0.008, 0, -1]))
for v, c in zip([v_left, v_mid, v_right], ['#377eb8', '#ff7f00', '#4daf4a']):
rays = []
for p0 in [p0_left, p0_lmid, p0_rmid, p0_right]:
ray = batoid.Ray(p0, v, t=0, wavelength=500e-9)
p0 = ray.positionAtTime(-18)
rays.append(batoid.Ray(p0, v, t=0, wavelength=500e-9))
traceFull = fiducial_telescope.traceFull(batoid.RayVector(rays))
batoid.drawTrace2d(ax1, traceFull, c=c)
batoid.drawTrace3d(ax2, traceFull, c=c)
In [ ]: