POV-Ray : Newsgroups : povray.general : Star Macro Server Time
11 Aug 2024 03:29:41 EDT (-0400)
  Star Macro (Message 11 to 15 of 15)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Andrea Ryan
Subject: Re: Star Macro
Date: 11 Oct 1999 16:53:51
Message: <38024D60.2ADD189B@global2000.net>
The pov file was saved in a different directory.
Brendan Ryan

Buckaroo Bill wrote:

> Is it saved in a different directory? and is your macro file in the include
> file and is the include file in your include path?
>
> Andrea Ryan <ary### [at] global2000net> wrote in message
> news:3802395C.D6E626C4@global2000.net...
> > I have two pov files with the same contents and they both include the
> > include file that has the star macro. I can render a image with one of
> > the files but with the other file, I can't render a image. Both files
> > have the line
> > starbl (0,0,0,1,1,1,0,1,5,4)
> > "starbl" is the macro's name but it says that 'starbl' is an undeclared
> > identifier.
> > Thanks.
> > Brendan Ryan
> >
> > Andrea Ryan wrote:
> >
> > > Is it a good idea to make stars by using CSG or should they be solid
> > > blocks?
> > > Brendan Ryan
> >


Post a reply to this message

From: Buckaroo Bill
Subject: Re: Star Macro
Date: 11 Oct 1999 18:24:15
Message: <3802638f@news.povray.org>
Andrea Ryan <ary### [at] global2000net> wrote in message
news:38024D60.2ADD189B@global2000.net...
> The pov file was saved in a different directory.
> Brendan Ryan
>

    Then move a copy of the macro include file to that same directory, or
place the file in your include path.


Post a reply to this message

From: Chris Colefax
Subject: Re: Star Macro
Date: 11 Oct 1999 20:26:17
Message: <38028029@news.povray.org>
Brendan Ryan <ary### [at] global2000net> wrote:
> I tried to divide every other vector by ptmove but it didn't work. This
code
> rotates and moves the odd numbered points and just rotates the even
numbered
> points. The code is in a while loop. Rotation_no and point_no both get
added
> to one at the end.
> Brendan Ryan
>
> #local determine = (point_no/2)-int(point_no/2);
> #switch (determine)
> #case (0.5)  file://odd numbered point
> #local vec =vrotate(<0,1,0>,<0,0,(angle_of_rotation*rotation_no)>/ptmove);
> #break
> #case (0) file://even numbered point
> #local vec=vrotate(<0,1,0>,<0,0,angle_of_rotation*rotation_no>);
> #break
> #end

As Kevin pointed out, what you've divided is the rotation angle, so every
second point will be *rotated* half as much as it should be (still at the
same radius), rather than scaled.  Also, the switch you've used is not
necessary, as you can actually use a counter variable that increments in
steps other than 1, eg:

#macro star_prism (Sides, StarFactor, Height1, Height2)
  #local RotAngle = 360/Sides;
  prism {linear_sweep linear_spline Height1, Height2, Sides+1, x,
    #local Count = 0.5; #while (Count < Sides)
      vrotate (x/StarFactor, y*RotAngle*Count),
    #local Count = Count + 0.5;
      vrotate (x, y*RotAngle*Count),
    #local Count = Count + 0.5; #end
    x}
#end


Post a reply to this message

From: Jerome M  BERGER
Subject: Re: Star Macro
Date: 11 Oct 1999 21:20:29
Message: <38028CCE.98B99F4C@enst.fr>
Chris Colefax wrote:
> 
> As Kevin pointed out, what you've divided is the rotation angle, so every
> second point will be *rotated* half as much as it should be (still at the
> same radius), rather than scaled.  Also, the switch you've used is not
> necessary, as you can actually use a counter variable that increments in
> steps other than 1, eg:
> 
> #macro star_prism (Sides, StarFactor, Height1, Height2)
>   #local RotAngle = 360/Sides;
>   prism {linear_sweep linear_spline Height1, Height2, Sides+1, x,
>     #local Count = 0.5; #while (Count < Sides)
>       vrotate (x/StarFactor, y*RotAngle*Count),
>     #local Count = Count + 0.5;
>       vrotate (x, y*RotAngle*Count),
>     #local Count = Count + 0.5; #end
>     x}
> #end
	Actually, you could even use directly  the angle as a counter, which
should be faster (no multiplication):

#macro star_prism (Sides, StarFactor, Height1, Height2)
  #local RotAngle = 180/Sides;
  #local EndAngle = 360-RotAngle/2; // to avoid rounding problems
  prism {
    linear_sweep linear_spline Height1, Height2, Sides+1, x,
    #local Angle = 0;
    #while (Angle < EndAngle)
      vrotate (<1/StarFactor, 0, 0>, <0, Angle, 0>),
      #local Angle = Angle + RotAngle;
      vrotate (x, <0, Angle, 0>),
      #local Count = Angle + RotAngle;
    #end
    x
  }
#end

		Jerome

-- 
*******************************

* they'll tell you what can't * mailto:ber### [at] inamecom
* be done and why...          * http://www.enst.fr/~jberger
* Then do it.                 *
*******************************


Post a reply to this message

From: Andrea Ryan
Subject: Re: Star Macro
Date: 13 Oct 1999 20:49:25
Message: <3805278B.ABFA2C7F@global2000.net>
I  just replaced the #switch statement with a #if statement and changed a few
other things like how the rotation angle is defined. POV-Ray was complaining
about the commas at the end of the vrotate functions in the macros below this
message.
Brendan Ryan

"Jerome M. BERGER" wrote:

> Chris Colefax wrote:
> >
> > As Kevin pointed out, what you've divided is the rotation angle, so every
> > second point will be *rotated* half as much as it should be (still at the
> > same radius), rather than scaled.  Also, the switch you've used is not
> > necessary, as you can actually use a counter variable that increments in
> > steps other than 1, eg:
> >
> > #macro star_prism (Sides, StarFactor, Height1, Height2)
> >   #local RotAngle = 360/Sides;
> >   prism {linear_sweep linear_spline Height1, Height2, Sides+1, x,
> >     #local Count = 0.5; #while (Count < Sides)
> >       vrotate (x/StarFactor, y*RotAngle*Count),
> >     #local Count = Count + 0.5;
> >       vrotate (x, y*RotAngle*Count),
> >     #local Count = Count + 0.5; #end
> >     x}
> > #end
>         Actually, you could even use directly  the angle as a counter, which
> should be faster (no multiplication):
>
> #macro star_prism (Sides, StarFactor, Height1, Height2)
>   #local RotAngle = 180/Sides;
>   #local EndAngle = 360-RotAngle/2; // to avoid rounding problems
>   prism {
>     linear_sweep linear_spline Height1, Height2, Sides+1, x,
>     #local Angle = 0;
>     #while (Angle < EndAngle)
>       vrotate (<1/StarFactor, 0, 0>, <0, Angle, 0>),
>       #local Angle = Angle + RotAngle;
>       vrotate (x, <0, Angle, 0>),
>       #local Count = Angle + RotAngle;
>     #end
>     x
>   }
> #end
>
>                 Jerome
>
> --
> *******************************

> * they'll tell you what can't * mailto:ber### [at] inamecom
> * be done and why...          * http://www.enst.fr/~jberger
> * Then do it.                 *
> *******************************


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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