Feb 20, 2013 at 12:22 AM
Edited Feb 20, 2013 at 12:23 AM

I have a challenge. I would like to represent multiple axes in a 3D ellipsoid. Let's say I have 5 unit axes, so that it's nontrivial, all originating from the same point (origin) and all pointing equal angles from each other. If the current values for
each axis is 0.5 (equal) then the 3D shape is a sphere. If one axis is valued at 0.75 and the rest 0.5 then the ellipsoid bulges in that direction. "Bulges" suggests that the surface is interpolated spherically between axis values. The number of
axes can vary from case to case.
Does anyone know how to do this? I've searched the web fruitlessly.
Added Bonus challenge: The bulge is colored in a gradient on the ellipsoid as a function of the degree of "bulging".
Thanks.



I would suggest to map the unit axes to spherical coordinates. Then interpolate the values (radii) on a 2D array (in phi/theta space), and map back to XYZ coordinates. This should be the positions of your mesh. Create the triangle indices the same way
as done in the MeshBuilder.AddSphere method.
To get the color gradient, you should use texture coordinates. Normalize the values to [0,1] and use a material with a gradient brush.



Thank you for your guidance. Perhaps I will start first by trying to draw the NDimensional axes, with gradient colors from blue to red (cold to hot) radiating outward,, like spines (Sea Urchin diagram) :)

