|
|
In article <3fc409da@news.povray.org>, Warp <war### [at] tagpovrayorg>
wrote:
> Only linear transformations are possible with transformation matrices
> (scales, rotates and translates are just shortcuts to equivalent
> transformation matrices).
> What you are trying to achieve is a non-linear transformation which
> is not possible with matrices.
A small terminology correction: the transformations POV-Ray can handle
are affine transforms. Rotate, scale, and shear are linear transforms,
translation is an affine transform. All linear transforms are affine
transforms. You're right in that what he's trying to accomplish is a
non-linear transform.
To go into more detail, linear transforms have the property that
transforming two points and adding them together gives the same result
as adding them together and then transforming that point. Affine
transforms such as those used by POV do not necessarily have this
property, though they must preserve collinearity (all points on a
straight line must transform to points on a straight line). In the case
of POV, they must also be invertible, you will get an error about a
"singular matrix" otherwise.
> The way to go is most probably to create the cone as an isosurface
> and then modify the input variables of the isosurface function
> appropriately.
Or just create the transformed version directly. Don't try to transform
a cylinder into a cone, just create a cone. To bend a tube, use a little
CSG. Or make a mesh and deform it, which is likely to be faster than an
isosurface, but will have problems with typical mesh artifacts like
faceting and polygonal edges.
--
Christopher James Huff <cja### [at] earthlinknet>
http://home.earthlink.net/~cjameshuff/
POV-Ray TAG: chr### [at] tagpovrayorg
http://tag.povray.org/
Post a reply to this message
|
|