|
|
>> 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
|
|