Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: ParametricPlot3D

  • To: mathgroup at
  • Subject: [mg61717] Re: [mg61693] ParametricPlot3D
  • From: Igor Antonio <igora at>
  • Date: Thu, 27 Oct 2005 05:01:44 -0400 (EDT)
  • Organization: Wolfram Research, Inc.
  • References: <> <>
  • Reply-to: igora at
  • Sender: owner-wri-mathgroup at

Maurits Haverkort wrote:
> Dear all
> I want to plot several surfaces in one plot and used for that
> ParametricPlot3D. Everything works fine if I enter the definitions for the
> functions inline. If I define however a variable (list) that holds the
> different functions it does not work anymore. Does anybody know a way out?
> The functions I want to plot are for example two spherse of unit radia
> centered at 000 and 100. (I need in the end to plot funcitons (R[t,f]
> centered at different orrigens)
> If I write it inline it works fine
> ParametricPlot3D[{{Cos[f] Sin[t], Sin[t] Sin[f], Cos[t]}, {Cos[f] Sin[t] +
> 1, Sin[t] Sin[f], Cos[t]}}, {t, 0, 3.1415}, {f, 0, 2 3.1415}];
> If however I first define my functions and then try to plot:
> ToPlot = {{Cos[f] Sin[t], Sin[t] Sin[f], Cos[t]}, {Cos[f] Sin[t] + 1, Sin[t]
> Sin[f], Cos[t]}};
> ParametricPlot3D[ToPlot, {t, 0, 3.1415}, {f, 0, 2 3.1415}];
> I get the error:
> ParametricPlot3D::ppfun : Argument ToPlot is not a list with three or four
> elements. More.
> Since the function I need to plot is a result of a calculation I rather need
> to input it as a variable. Any sugestions?
> Thanks,
> Maurits


ParametricPlot3D has the Attribute HoldAll, which means it any of its arguments 
before launching:

Mathematica 5.2 for Microsoft Windows
Copyright 1988-2005 Wolfram Research, Inc.
  -- Terminal graphics initialized --

In[1]:= Attributes@ParametricPlot3D

Out[1]= {HoldAll, Protected}

You need to do an Evaluate[] on the argument of ParametricPlot3D so that ToPlot 
is "converted" to its values before being passed to ParametricPlot3D, like this:

ToPlot = {{Cos[f], Sin[t], Sin[t] Sin[f], Cos[t]}, {Cos[f] Sin[t] + 1, Sin[t] 
Sin[f], Cos[t]}};

ParametricPlot3D[Evaluate@ToPlot, {t, 0, 3.1415}, {f, 0, 2 3.1415}];


Igor C. Antonio
Wolfram Research, Inc.

To email me personally, remove the dash.

  • Prev by Date: Re: Re: Language vs. Library why it matters
  • Next by Date: Re: MLPutRealList vs. sequence of MLPutDouble
  • Previous by thread: Re: ParametricPlot3D
  • Next by thread: Re: ParametricPlot3D