|
|
"H.E. Day" <mil### [at] teleportcom> writes:
> Just curious, but does anyone here have any clue as to go about bending
> an isosurface?
> Preferably at a single point. I've already thought of CC's object
> bender, but it is too slow for what I want to do.
I'm not sure whether I've completely understood what you want. Anyway,
this might be the solution:
Spherical coordinates may be what you're looking for. Instead of Cartesian
coordinates (x, y, and z) you use:
r the distance from the origin
phi Project your point to the xy-plane. Then phi is the angle between
the x axis and the line through the origin and the projected point.
theta the angle between the z-axis and the line through the origin and
your point.
I suggest, that you make a drawing to help you imaging the situation.
It should be clear that
r is in [0,infinity]
phi is in [0,360[ degrees
theta is in [0,180] degrees
Your isosurface is defined by a equation f(x,y,z) = 0. So, what I think
that you want is to map the Cartesian coordinates to spherical coordinates
and put them in your function f. This can be achieved by:
r = sqrt(x*x + y*y + z*z)
phi = arctan (y/x)
theta = arctan ( sqrt(x*x + y*y) / z )
It's up to you to ensure that the resulting surface is smooth.
I hope that my limited English does not prevent you from understanding
my posting.
Thomas
--
http://thomas.willhalm.de/
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.2i
mQCNAzgBwGkAAAEEAKx6RGDGAhjwr2kEv7Z2oxx2SoYBpMWCN2M76HE0GLHRvvto
RMfuLp+ECPoyutG9DnrwpLGNKwntY10qsWNPZNHZ9obZOtQcZf+hYs+A/283l7Iv
EKtKsggRATbd44NECkkKLuWZzuklNaoSAN7SOnmG94ZpcjZTfIwTzXgp3F/9AAUR
tCRUaG9tYXMgV2lsbGhhbG0gPHRob21hc0B3aWxsaGFsbS5kZT4=
=UScf
-----END PGP PUBLIC KEY BLOCK-----
Post a reply to this message
|
|