新图标
这是一篇旧文,其中的内容可能已经过时。
我决定为站点添加一个图标。然而找不到想表达的意思,干脆弄一个拉风的动态图标好了。
支持动态图标的浏览器
Browser | ICO | PNG | GIF | animated GIFs | JPEG | APNG | SVG |
---|---|---|---|---|---|---|---|
Firefox | 1.0 | 1.0 | 1.0 | Yes | Yes | 3.0 | No |
Google Chrome | Yes | Yes | 4.0 | 4.0 | 4.0 | No | ? |
Internet Explorer | 5.0 | 11.0 | 11.0 | No | No | No | No |
Opera | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | 9.5 | ? |
Safari | Yes | 4.0 | 4.0 | No | 4.0 | No | No |
据说 Chrome 也是看不到动画效果的,不过管它呢,我用火狐。
构造
旋转起来有特色的图形,我想到了两个:一个是太极图,另一个是蚊香。正在两者之间犹豫时,我灵机一动 🤔 ,画出了这张图:
于是有了现在的图标。
如你所见:
- 这个集合是有界的连通开集,被包含在 以内,且占据了它一半的面积;
- 在接近中心的地方,它表现得像太极图那样初等;在接近外围的地方,它又像阿基米德螺线那样盘旋了无数圈。
作图过程中的问题
在 Mathematica 中作图时,遇到了不少问题:
-
一开始用的表达式:
这样有个显著的缺点:当 固定时,点随 的变化扫出的是一段半圆弧,所以只有 的取样点足够多时,才不至于看到明显的折角。
解决方案:把表达式改成
当 固定时,点随 的变化扫出的是一条线段,这样 只要取三个样点就可以了。
-
采用了新的表达式,极轴下方的“蛇头”却不翼而飞。
解决方案:不慌不忙地把“蛇头”补上:
-
由于边界线存在固定宽度,图形外围一片漆黑,而不是设想中的 50% 灰。
解决方案:不显示边界线。
-
去掉边界线之后,原先平滑的边缘变成了锯齿状。这是由于曲线的图像支持抗锯齿,而区域不支持。
解决方案:图形抗锯齿工具
ParametricPlot3D[
{
{Cos[u + v], Sin[u + v], Sin[u - v]},
{-Sin[u + v], Cos[u + v], Sin[u - v]},
{-Cos[u + v], -Sin[u + v], Sin[u - v]},
{Sin[u + v], -Cos[u + v], Sin[u - v]},
{Sin[u - v], Cos[u + v], Sin[u + v]},
{Sin[u - v], -Sin[u + v], Cos[u + v]},
{Sin[u - v], -Cos[u + v], -Sin[u + v]},
{Sin[u - v], Sin[u + v], -Cos[u + v]},
{Cos[u + v], Sin[u - v], Sin[u + v]},
{-Sin[u + v], Sin[u - v], Cos[u + v]},
{-Cos[u + v], Sin[u - v], -Sin[u + v]},
{Sin[u + v], Sin[u - v], -Cos[u + v]}
},
{u, 0, Pi/4},
{v, 0, Pi/4},
Mesh -> False, PlotStyle -> Opacity[0.7]
]
题外话
在很长的一段时间内,人们认为平面上的曲线至多是两个不相交区域(即连通开集)的公共边界。上面的图形给出了一个反例: 是三个区域 、 的中心对称像和 的公共边界。类似地,可以构造任意多个不相交区域有公共边界的情形。