Message Boards Message Boards

('x','y','z') from RevolutionPlot3D('a')

Posted 9 years ago

Hi,

The question is how to generate {x,y,z} coordinates from parametric coordinates. As an example, I have this "eye ball" plot, which is parametric. I've attached a notebook with that code.

RevolutionPlot3D[(t^4 - t^7), {t, 0, 1}, RevolutionAxis -> {1, 0, 0}, 
 PlotLabel -> {{"RevolutionPlot3D"}}]

t =.
height = Table[t^4 - t^7, {t, 0, 1, 0.1}]

It makes sense to me to take any given t (t is the independent variable for the parametric coordinates) and the resulting height (generated by the function), and make use of the fact that it has a 90-degree angle to the axis, to figure angles for that right triangle.

At that stage it would be possible to know the {x,y,z} for any t (where x = t), when they are orthogonal to the t/x-axis.

Difficulty is when the rotation around the t/x-axis is something other than 1/2, 1, 3/2 or 2 radians. That would introduce another triangle, where the rotation would help place the y & z.

Am unsure how best to do this, and am hoping Mathematica has something already built. Thanks for any help that you can provide,

Greg

eye

angles

Attachments:
POSTED BY: Greg
4 Replies
Posted 9 years ago

Once the revolution is performed, there is no single value for {x,y}, rather there is a circle in space for each value of t. So it makes sense to not use revolution, but rather describe the surface more directly.

f[t_, theta_] := {(t^4 - t^7) Cos[theta], (t^4 - t^7) Sin[theta], t};

ParametricPlot3D[f[t, theta], {t, 0, 1}, {theta, 0, 2 Pi}]

enter image description here

Now we can choose any point on the surface by choosing t and theta, or plot the points associated with a single value of t:

ParametricPlot3D[f[.5, theta], {theta, 0, 2 Pi}]

enter image description here

POSTED BY: David Keith
Posted 9 years ago

Wow, you've found a more direct way and bypassed a difficult problem! Thanks.

POSTED BY: Greg
Posted 9 years ago

Hi Greg,

It wasn't really bypassed! You were quite on the right track. A line segment from (0,0,t) to a point on the surface for that value of t is indeed perpendicular to the t axis. (Notice I put t on the z-axis, but that is an arbitrary choice.) And we do have the length of that segment equal to the f(t) that gives the radius of the section. But around the circular rim, for any value of f(t), the x and y values change in order to generate the circle. So we have a circle radius f(t) and as we sweep around the circle we have x and y given by f(t)cos(theta) and f(t)sin(theta). And note that for these legs of your right triangle we have the hypotenuse^2 = x^2 + y^2, which is f(t)^2*(cos(theta)^2 + sin(theta)^2). But cos^2+sin^2 = 1. So we are back to the radius = f(t).

So your right triangle observation is embedded in this solution!

Kind regards,

David

POSTED BY: David Keith
Posted 9 years ago

.

POSTED BY: Greg
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract