如何绘制一种优美曲面,并给出它的参数方程

http://mathematica.stackexchange.com/questions/37698/how-to-plot-a-certain-surface-what-is-its-parametric-equation


The surface show below is very beautiful; however, I don't know its function either as an implicit function or in parametric form.

Anyone have an idea about it and how to draw it with Mathematica?

Beautiful surface

share edit close delete flag
 
2
up voted
One way might be to browse on-line the Mathematica GUIDE book for graphics by Trott at google booksbooks.google.com/… If anyone done something like the above, it will be in that book. Many more amazing plots there. –   Nasser  Nov 24 '13 at 9:15
5
 
Do you have any affiliation with this? translate.google.com/… –   belisarius  Nov 24 '13 at 16:45
 
Can you please give an answer to @belisarius. You have had 4 days to respond and you are back here again today. –   Mike Honeychurch  Nov 28 '13 at 1:07
 
@belisarius I have no access to this due to the network being blocked –   LCFactorization  Nov 28 '13 at 1:48   
 
Strange ... at least @MikeHoneychurch, four others and me aren't suffering any blocking. Someone is playing dirty with your network access. –   belisarius  Nov 28 '13 at 1:51 
 
add / show 11 more comments
 

2 Answers

Consider this:

ParametricPlot3D[
 RotationTransform[a, {0, 1, 0}][{0, 0, Sin[3 a] + 5/4}],
  {a, 0, 2 Pi}, Evaluated -> True]

enter image description here

Now rotate this around a circle, while rotating it at the same time around its' origin:

ParametricPlot3D[
 RotationTransform[b, {0, 0, 1}][{6, 0, 0} + 
   RotationTransform[a + 3 b, {0, 1, 0}][{0, 0, Sin[3 a] + 5/4}]],
    {a, 0, 2 Pi}, {b, 0, 2 Pi}, PlotPoints -> 40, Evaluated -> True]

enter image description here

EDIT:

A color function, omitting surface mesh, fixing direction of rotation and adding a hint of transparency, like the original:

ParametricPlot3D[
 RotationTransform[b, {0, 0, 1}][{6, 0, 0} + 
   RotationTransform[a - 3 b + Pi, {0, 1, 0}][{0, 0, Sin[3 a] + 5/4}]],
 {a, 0, 2 Pi}, {b, 0, 2 Pi}, PlotPoints -> 40, 
 ColorFunction -> (RGBColor[#, 0, 1 - #, 4/5] &[1/2 + {1, -1}.{#1, #2}/2] &),
 Mesh -> False, Evaluated -> True]

enter image description here

This might be slightly more intuitive way to write ColorFunction using Blend and Opacity in PlotStyle:

ParametricPlot3D[
 RotationTransform[b, {0, 0, 1}][{6, 0, 0} + 
   RotationTransform[a - 3 b + Pi, {0, 1, 0}][{0, 0, Sin[3 a] + 5/4}]],
 {a, 0, 2 Pi}, {b, 0, 2 Pi},
 PlotPoints -> 40, 
 PlotStyle -> Opacity[4/5], 
 ColorFunction -> (Blend[{Red, Blue}, 1/2 + {1, -1}.{#1, #2}/2] &), 
 Mesh -> False, Evaluated -> True]
share edit flag
 
 
+1 very neat! ColorFunction would be a nice addition...:) –   cormullion  Nov 24 '13 at 9:48
2
 
(+1 i) Thank you! :) –   cormullion  Nov 24 '13 at 10:14
2
 
Very nice use of RotationTransform –   Simon Woods  Nov 24 '13 at 13:11
3
 
@cormullion, I love the imaginary upvote. +Sqrt[2I] :-) –   Simon Woods  Nov 24 '13 at 13:12
1
 
@SimonWoods Now we just need to figure out how to Abs[] them for a rep boost :D –   rm -rf  Nov 24 '13 at 15:07
 
add / show 6 more comments

I'm adding this answer to put on record an answer to the second part the question, "what is the parametric equation?".

The parametric equation is implicit in Kirma's RotationTransform expression. To extract it, one need simply write something like

Clear[a, b]
quoit[a_, b_] := 
  Evaluate @ RotationTransform[b, {0, 0, 1}][{6, 0, 0} + 
    RotationTransform[a - 3 b + Pi, {0, 1, 0}][{0, 0, Sin[3 a] + 5/4}]]

The function defined by the above expression, looks like this

Definition @ quoit
quoit[a_, b_] := 
   {
     Cos[b] (6 - (5/4 + Sin[3 a]) Sin[a - 3 b]), 
     (6 - (5/4 + Sin[3 a]) Sin[a - 3 b]) Sin[b], 
     -Cos[a - 3 b] (5/4 + Sin[3 a])
   }
share edit flag
 
 
thank you very much ! very useful –   LCFactorization  Nov 24 '13 at 15:47   
 
Indeed; maybe I left this part a bit too much implied. –   kirma  Nov 24 '13 at 17:23
2
up voted
Also the order of wrapping rotation matrix is critical. When the foil rotates around the circle (outmost transform function), the Z axis is fixed. While it spins about its center, the attached Z axis changes direction. Thats why the transform with {0,1,0} is inside the first transform. –   Shenghui  Nov 25 '13 at 2:16
 
add comment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值