1
$\begingroup$

I want to plot a fusilli pasta-like surface. I have seen such a Mathematica-made surface before:

enter image description here

So far, I am able to create normal helical surfaces in the following way:

l = 2;
ParametricPlot3D[{0.1*u Sin[l*t], 0.1*u Cos[l*t], t/(2*Pi)}, {t, 0, 2*Pi}, {u, -1, 1}]

which produces

enter image description here

My question is: How can I build a fusilli helix out of that?

$\endgroup$
6
  • 2
    $\begingroup$ How do you want the output to be different? What about this ouput: l = 2; ParametricPlot3D[{0.1*u Sin[l*t], 0.1*u Cos[l*t], t/(2*\[Pi])}, {t, 0, 2*\[Pi]}, {u, -1, 1}, Extrusion -> .02, Mesh -> None, Boxed -> False, Axes -> False] $\endgroup$ – Jason B. Mar 15 '17 at 17:27
  • 2
    $\begingroup$ Have you tried combining three helices with a phase shift using Show? I think that's the output you wanted, right? $\endgroup$ – b3m2a1 Mar 15 '17 at 17:27
  • $\begingroup$ @MB1965 - I missed that there were multiple helices in the pasta (also I think fusili often has those little grooves which hold onto the sauce so well). $\endgroup$ – Jason B. Mar 15 '17 at 17:32
  • $\begingroup$ @JasonB. I had to look twice myself. Do you know of any simple edit to the parametrization to get grooves in? Must be possible but I can't think of it. $\endgroup$ – b3m2a1 Mar 15 '17 at 17:33
  • 1
    $\begingroup$ You might be interested in Pasta by Design. $\endgroup$ – J. M.'s torpor Mar 19 '17 at 15:58
7
$\begingroup$

Your code is already almost what you need. You just have to combine three surfaces like yours into the same plot - with two slight modifications: The radius u should only go from 0 to 1 and the phase of the two other surfaces has to be shifted by 2/3*Pi and 4/3*Pi, respectively:

l = 2;
ParametricPlot3D[{{0.1*u Sin[l*t], 0.1*u Cos[l*t],t/(2*\[Pi])},
                  {0.1*u Sin[l*t + 2/3*Pi], 0.1*u Cos[l*t + 2/3*Pi], t/(2*\[Pi])},
                  {0.1*u Sin[l*t + 4/3*Pi], 0.1*u Cos[l*t + 4/3*Pi], t/(2*\[Pi])}
                 }, {t, 0, 2*\[Pi]}, {u, 0, 1}]

This yields:

Plot of a fussili

$\endgroup$
6
  • 2
    $\begingroup$ This is essentially the same so I won't post separate answer, feel free to include it. ParametricPlot3D[Evaluate@Table[ RotationTransform[l + off, {0, 0, 1}]@{r, r, l}, {off, {0, 2 Pi/3, 4 Pi/3}}] , {r, 0, 1} , {l, 0, 10} ] $\endgroup$ – Kuba Mar 15 '17 at 17:34
  • 1
    $\begingroup$ +1 - if you want it to be more pasta-like, you can use the undocumented Extrusion option, and give each surface the same PlotStyle, you can get something like this with your code. $\endgroup$ – Jason B. Mar 15 '17 at 17:36
  • $\begingroup$ @JasonB. I had no idea Extrusion existed. Where'd you find it? $\endgroup$ – b3m2a1 Mar 15 '17 at 17:51
  • $\begingroup$ @MB1965 I found it on this site, some question about adding thickness to a ContourPlot3D $\endgroup$ – Jason B. Mar 15 '17 at 18:07
  • 1
    $\begingroup$ @MB1965 Also PlotTheme -> "ThickSurface" which is documented. $\endgroup$ – Edmund Mar 15 '17 at 19:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.