Message Boards Message Boards

0
|
2635 Views
|
4 Replies
|
4 Total Likes
View groups...
Share
Share this post:

3D parametric plot With 3 parameters

Hello, I'm trying to make a 3D Parametric Plot as follows:

ParametricPlot3D[{X, Y, Z}, {a, 0, 1}, {b, 0, 1}, {c, 0, 1}]

X, Y, and Z are each functions of the parameters a, b and c. However, ParametricPlot3D only works for two parameters or less and I have 3.

Any thoughts on how to do this?

POSTED BY: Joe Prendergast
4 Replies

What about:

ClearAll[myparametricplot3D]
ConnectToMakeCube[{{{a1_,a2_},{a3_,a4_}},{{a5_,a6_},{a7_,a8_}}}]:=Line[{
{a1,a2},
{a3,a4},
{a1,a3},
{a2,a4},

{a5,a6},
{a7,a8},
{a5,a7},
{a6,a8},

{a1,a5},
{a2,a6},
{a3,a7},
{a4,a8}
}]
myparametricplot3D[fs:{fx_,fy_,fz_},xs:{x_,xmin_,xmax_,\[CapitalDelta]x_},ys:{y_,ymin_,ymax_,\[CapitalDelta]y_},zs:{z_,zmin_,zmax_,\[CapitalDelta]z_}]:=Module[{data},
data=Table[fs,xs,ys,zs];
BlockMap[ConnectToMakeCube,data,{2,2,2},1]
]
Graphics3D[myparametricplot3D[{x+0.3y-0.1z^3,y-0.1x,0.2x-0.3y^2-z},{x,-1,1,0.25},{y,-1,1,0.25},{z,-1,1,0.25}],Axes->True,AxesLabel->{"x","y","z"}]

giving:

enter image description here

POSTED BY: Sander Huisman

Perfect! Thanks so much.

POSTED BY: Joe Prendergast

Btw, this could be further optimised as some lines are redundant, but for small plots it should be fine :-)

POSTED BY: Sander Huisman

You may also consider TransformedRegion:

Region@TransformedRegion[Cuboid[{0, 0, 0}],
  {Indexed[#, 1] Indexed[#, 2],
    Indexed[#, 1] + .5 Indexed[#, 2],
    Indexed[#, 3]} &]
POSTED BY: Gianluca Gorni
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