Matthen

Pinhole Lens

Jun 10th, 2013
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. Manipulate[
  2. Graphics[{
  3. FaceForm[White],
  4. EdgeForm[Directive[Thickness[0.01], RGBColor[0.14, 0.27, 0.55]]],
  5. Disk[{-0.1 t, 0}, {1 - 0.1 t, 0.9}],
  6. FaceForm[GrayLevel[0.85]],
  7. Disk[{-0.92, 0}, {0.075, 0.4}],
  8. {RGBColor[0.756, 0.517, 0.10`], Opacity[0.5], Thick,
  9. Table[
  10. If[Abs[x] <= a,
  11. Block[{p1, p2, u},
  12. {
  13. p1 = {-1.4, x};
  14. p2 = {-1, x};
  15. u = (f - p2);
  16. u = u/Norm[u];
  17. Line[{p1, p2}], Line[{p2, p2 + (2 - 0.2 t) u}]
  18. }
  19. ]
  20. ,
  21. {
  22. Block[{p1, p2, p3},
  23. {
  24. p1 = {-1.4, x};
  25. p2 = {-1.2, x};
  26. Line[{p1, p2}]}
  27. ]
  28. }
  29. ], {x, -0.25, 0.25, 0.02}]},
  30. {Black, Thickness[0.02], Line[{{-1.2, 1.1}, {-1.2, a + 0.02}}],
  31. Line[{{-1.2, -1.1}, {-1.2, -a - 0.02}}]}
  32. }, Background -> RGBColor[0.4, 0.76, 0.9],
  33. PlotRange -> {{-1.4, 1.1}, {-1.1, 1.1}}]
  34. , {{t, 0, "Deformation"}, 0, 1.7}, {{a, 0.25, "Pinhole"}, 0.03,
  35. 0.25}, Initialization :> (f = {1, 0})]
Advertisement
Add Comment
Please, Sign In to add comment