1

Is it possible to revolve a function around a line instead of an axis?

For instance I would like to revolve the quadratic function:

f[x_]:=-0.45(x-1.5)^2 

Around the x=3, z=0 line.

Öskå
  • 8,587
  • 4
  • 30
  • 49
Michael H
  • 11
  • 1

1 Answers1

3

General approach is covered by this answer form the Q&A which link is provided by Öskå.

As I've said in comments, you may translate your function so the x = 3, z = 0 line will be an y-axis.

f[x_] := (-0.45 (x - 1.5)^2)

Plot[{f[x], f[x + 3]}, {x, -5, 5}, 
     Epilog -> {Thick, Blue, Line[{{3, -25}, {3, 5}}], Red, Line[{{0, -25}, {0, 5}}]}, 
     AxesLabel -> {"x", "y"}, AxesStyle -> Arrowheads@.05]

enter image description here

Then revolve it around y-axis:

plot = RevolutionPlot3D[{x, f[x + 3], 0}, {x, -5, 5},
                      RevolutionAxis -> {0, 1, 0}, AxesOrigin -> {0, 0, 0}, 
                      ImageSize -> 500, PlotRange -> 15, BaseStyle -> Orange,
                      AxesStyle -> {Red, Green, Blue}
                     ]

enter image description here

and translate it back:

Translate[#, {3, 0, 0}] & @@ plot //Graphics3D[#, Axes -> True, PlotRange -> 15,
                                           AxesOrigin -> {0, 0, 0},  ImageSize -> 500,
                                           AxesStyle -> {Red, Green, Blue}] &

enter image description here

Kuba
  • 136,707
  • 13
  • 279
  • 740