|
![](/i/fill.gif) |
"Sven Littkowski" <sve### [at] jamaica-focus com> wrote in message
news:45558490@news.povray.org...
> Here a sample of my scene:
>
> #declare Normal=< 0.0, 0.0, 0.0 >;
>
> #declare Angle=30.0;
>
> #while(Angle<360)
> #declare Location=< -25.0, 100.0, 0.0 > rotate < 0.0, Angle, 0.0 >;
> #declare Boden=trace( Meeresgrund, Location, -y, Normal );
> object {Licht translate < -25.0, Boden.y, 0.0 > rotate < 0.0, Angle, 0.0
> > }
> declare Angle=Angle+30;
> #end
>
> I intent to place some objects (called "Licht") in a circle. Since the
> underground is a height_field, I want to use Trace to get the proper Y
> coordinate of the current location. There I fail. I don't know exactly,
> how to properly define the location for Trace. Please see above. of
> course, that returns an error message. How to do it better?
>
> Thanks,
>
> Sven
Hi Sven,
It looks to me like you want 'Location' to be a point that is 25 units from
the Y axis and rotates around it.
You can get that by declaring 'Location' using:
#declare Location = vrotate(<-25,100,0>,<0,Angle,0>).
and it's always best (to avoid dissapointment) to test whether you actually
hit the surface using:
#if (vlength(Norm)!=0)
By the way, if you start at 30 degrees and stop before you get to 360
degrees, then, don't you get an incomplete circle of Licht's (whatever a
Licht is).
As Jorg pointed out, you should be able to place your Licht on your
Meeresgrund using just:
object {Licht translate Boden}
Regards
Chris B.
Post a reply to this message
|
![](/i/fill.gif) |