|
![](/i/fill.gif) |
Andrea Ryan wrote:
>
> After a little testing, I found that the macro worked fine for prisms with
> a odd number of sides, but it doesn't work prisms that have an even number
> of sides.
> I think the problem is in this code:
>
> #local rotation_no = 0;
> #while (rotation_no<sides)
> #local angle_of_rotation = 360/sides;
> #local temp_vec=vrotate(<0,1,0>,<0,1,angle_of_rotation*rotation_no>);
> #local vec=<temp_vec.y,temp_vec.z>;
> #local rotation_no = rotation_no+1;
> //the stuff that writes to the data file
> #end
>
> When a prism with a even number of sides is created, one of the points has
> a coordinate with an incorrect sign. Thanks for your help.
> Brendan Ryan
>
> Andrea Ryan wrote:
>
I don't know exactly what caused your problem but the code above has some typos.
Here is what I made of it:
#declare sides=5;
prism {
linear_sweep
linear_spline
-0.5,
0.5,
sides+1,
#local rotation_no = 0;
#while (rotation_no<sides)
#local angle_of_rotation = 360/sides;
//#local temp_vec=vrotate(<0,1,0>,<0,1,angle_of_rotation*rotation_no>);
#local temp_vec=vrotate(<0,1,0>,<0,0,angle_of_rotation*rotation_no>);
//#local vec=<temp_vec.y,temp_vec.z>;
#local vec=<temp_vec.x,temp_vec.y>;
#if (rotation_no=0)
#declare vec0=vec;
#end
vec,
#local rotation_no = rotation_no+1;
#end
vec0
pigment{rgb 1}
rotate x*90
}
When I tried this it worked fine.
Remco
Post a reply to this message
|
![](/i/fill.gif) |