POV-Ray : Newsgroups : povray.binaries.scene-files : Trace: How to work together with Rotate : Re: Trace: How to work together with Rotate Server Time
1 Sep 2024 12:19:58 EDT (-0400)
  Re: Trace: How to work together with Rotate  
From: Chris B
Date: 11 Nov 2006 04:15:31
Message: <455594b3@news.povray.org>
"Sven Littkowski" <sve### [at] jamaica-focuscom> 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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.