-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update object angle/CRA according to image size #12
Comments
An IIRC the code should be able to do that just fine. http://nbviewer.jupyter.org/github/jordens/rayopt-notebooks/blob/master/offner_relay.ipynb |
Yes, just that I don't know which angle/distance to the pupil corresponds to a certain FOV before paraxial tracing. I saw the solve function in the tutorial but it wasn't so clear how to use it. I'll check it out. |
But if you have a collimated input beam (i.e. an infinite conjugate) it should just do that. import rayopt as ro
s = ro.system_from_yaml("""
object:
type: infinite
angle_deg: 10
pupil:
radius: 1
stop: 2
elements:
- {}
- {distance: 1, material: 1.5, roc: 5}
- {distance: .2, material: 1.0}
- {}
""")
s.update()
s.paraxial.resize()
print(s)
print(s.paraxial)
|
Oh. Image size! I misread that. |
It might be better to rewrite the paraxial trace so that it doesn't care about object height/chief ray angle and pupil height/marginal ray angle and instead just use "1" and just scale the printed data. Then you could always do the trace without ever hitting nans, then do solves/pickups on that data and then everything would always give the right result. |
But for now i would just guess some initial value so that the primary trace gives you pupil data and then use a pickup to set the actual value. |
Is this already possible or even desired? For me it would be helpful for designing a lens with a certain FOV.
The text was updated successfully, but these errors were encountered: