|
|
> Hm, could you post the code for that? Just because I'm curious, my
> solution was different (and IMHO a little more intuitive):
I'm not claiming superiority over your solution.
The code (somewhat simplified, the simplifications untested) was
// max_trace_level += 2
camera {
cylinder 3
angle 360
up -Length*y
translate 2*Dist*y
}
union {
cone {
-Length*y 0,
3*Length*y 4*Length
inverse
}
cone {
3*Length*y 0,
-Length*y 4*Length
inverse
}
pigment {rgb 0}
finish {reflection 1}
}
The object sits centered at the origin, is of length Length and y is the
axis of rotation. The camera sits on the same axis but shifted away from
the object. To see why this works, consider any plane that contains the
y axis. In terms of the camera this corresponds to a row in the image.
The conical mirrors form a rectangular diamond in this plane with a 45
degree angle both to the axis of rotation and to the direction of the
rays of vision. After two reflections, they head towards the object.
Mark Weyer
Post a reply to this message
|
|