平面和圆环面的一种特殊交线: Villarceau circles

来源:互联网 发布:一知f君张碧晨三部rar 编辑:程序博客网 时间:2024/04/29 06:27


在Mathematica 10.0+中开始支持 CripPlane, CripPlaneStyle 这类新特性(这里有例子);

https://mathematica.stackexchange.com/questions/59279/excluding-a-region-in-parametricplot3d/59284#59284

这用于研究圆环面和平面的交线并动态演示很方便.


看到 @万精油墨绿 等人正在讨论这个奇妙的交线:

这个V圆也不是那么容易想到的,难为这个本科生了。[微笑] //@华山派小6: 今年一个本科生论文就是让他研究各种截口以及平面移动时截口的形变,这学生竟然漏掉了V圆。刚刚当她面翻出万精油的V圆贴,让她回去脑补
@万精油墨绿
前两天与@数学文化 说起立体几何可以培养学生的空间想象能力。一个很好的例子是Villarceau园。一个环面,竖切一刀切出两个小圆。横切切出两个同心圆。沿一定的方位斜切可以切出两个相交圆,这就是Villarceau园。附图是我用MATLAB透明图做的,依稀可以看到V园。没有很好的空间想象力是想不到V园的。

Villarceau circles

http://en.wikipedia.org/wiki/Villarceau_circles

维基上的图片演示和公式及描述都生动而详细,:

如果先看到维基的GIF,我可能会从另外角度入手做演示; 不过我是看了@万精油墨绿 的图之后偷笑

所以就有了下面的代码和图片:


h = ContourPlot3D[(16 + x^2 + y^2 + z^2)^2 == 100 (x^2 + y^2), {x, -8,    8}, {y, -8, 8}, {z, -6, 6}, PlotPoints -> 60,   PlotTheme -> "Classic", AspectRatio -> 1/2, ImageSize -> 400,   Mesh -> None, ViewPoint -> {-1.1864142385985619`,-2.0392613066826653`,2.425661678288525`}]list=Table[Show[h,ClipPlanes->{{3 a,0,-4,0}},ClipPlanesStyle->{Directive[Opacity[0.35],Cyan]},ImageSize->400,ViewPoint->{-1.1864142385985619`,-2.0392613066826653`,2.425661678288525`},Boxed->False,Axes->None],{a,{0.1`,0.16`,0.22`,0.28`,0.33999999999999997`,0.4`,0.45999999999999996`,0.52`,0.58`,0.64`,0.7`,0.7599999999999999`,0.82`,0.88`,0.94`,0.9999999999999999`,1,1,1,1,1,1,1,1.`,1.06`,1.12`,1.18`,1.24`,1.3`,1.3599999999999999`,1.42`,1.48`,1.54`,1.6`,1.66`,1.72`,1.78`,1.8399999999999999`,1.9`,1.96`}}];Export["testTorusCircles.gif", list]

如果想有如同维基的GIF效果,需要做多个GIF文件,然后拼接,或者多个List直接在Mathematica中拼接并导出即可.



0 0
原创粉丝点击