Why/when does a kaleidoscope not generate 'continuous' images?

34 Views Asked by At

I'm building a kaleidoscope in code. It seems to work, but I'm getting unexpected results. Either my code is wrong or my expectations were wrong.

The code is mimicking a number of mirrors, perpendicular to the viewers plane, with angles evenly spaced on a circle in the viewers plane. A camera is in the center of that circle. I was expecting the result to always show continuous repetitions, because the mirrors will mirror each other where they cross.

With continuous I mean, every pixel on the edge of a mirror should be reflected at the edge of it's adjacent mirror, so a straight line on one mirror would be continued on each adjacent mirror, with an optional angle.

To test it, I put a simple square grid in front of the viewer, and colored the mirrors slightly blue.


This seems to make sense for a setup with 3 or 4 mirrors:

3 mirrors


4 mirrors


But with 6 or 8 mirrors, some of the reflections seem to get 'cut off' at the edge between the mirrors:

6 mirrors


8 mirrors


Is this 'correct' - is it to be expected ?

Can I define rules, limitations, to apply to the mirrors to avoid this behaviour ?