POV-Ray : Newsgroups : povray.binaries.images : Releasing kobldes v0.59-2a: second example image : Re: Releasing kobldes v0.59-2a: second example image Server Time
31 Jul 2024 00:24:38 EDT (-0400)
  Re: Releasing kobldes v0.59-2a: second example image  
From: Alain
Date: 13 Oct 2010 13:44:35
Message: <4cb5f003@news.povray.org>

>> Your curved walls are presently cut by boxes or planes that are oriented
>> radialy. OK for self standing walls or curved walls that need to
>> continue as straight ones.
>> They should be cut by box or plane that are parallel to the wall the
>> curved wall connect to, then you need to also remove the rest of the
>> cylinder.
>
> Yep! That seems to be the only interesting solution right now.
>
>> There is also nothing wrong in over shooting and hiding part
>> of the curve inside adjacent walls. This should not cause any problem as
>> long as the curved wall is the same thickness, or thinner, as the other
>> walls.
>
> That will not be acceptable if the intention is to actually use the resulting
> model to construct a building which is the goal of kobldes.
>
>> Using prisms, you need to generate many points that are placed along a
>> circle. Maybe as many as 1 point for each degree along the curve. Then,
>> you can use a cubic_spline to smooth out the curve.
>
> I experimented with this for quite a while but the curve produced was not
> consistent. It may be perfectly curved for a couple of circumstanced but there
> was always a situation when it would throw a dark spot or a misaligned edge
> somewhere. Generally handling many UV values made it too tedious for me. It was
> no longer fun!
>
>> You can use sin(angle) and cos(angle) and multiply those by the actual
>> radius of the wall. It's then easy to have different start and end angle
>> for the inner and outer surfaces. Just make sure that you use a slightly
>> longer arc to hide it's ends inside the other walls.
>>
>
> Perhaps an illustration? I think chopping up the ends of cylinders as you
> alluded to in the beginning is a much more interesting solution.
>
prism{...[start of your prism]

#local Angle = Out_Start_Angle; #local To_Radiant = 1/pi/2;
#while(Angle < Out_End_Angle)
	<sin(Angle*To_Radiant), cos(Angle*To_Radiant)>*Out_Radius,
	#local Angle = Angle + Step;
#end
#local Angle = In_Start_Angle; #local To_Radiant = 1/pi/2;
#while(Angle > In_End_Angle)
	<sin(Angle*To_Radiant), cos(Angle*To_Radiant)>*In_Radius,
	#local Angle = Angle - Step;
#end

[rest of your prism]
}




Alain


Post a reply to this message

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