新图标

我决定为站点添加一个图标。然而找不到想表达的意思,干脆弄一个拉风的动态图标好了。

支持动态图标的浏览器

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 也是看不到动画效果的,不过管它呢,我用火狐。

构造

旋转起来有特色的图形,我想到了两个:一个是太极图,另一个是蚊香。正在两者之间犹豫时,我灵机一动 ,画出了这张图:

arctan\[A=\left\{(r,\theta):r\in(0,\frac{\pi}{2}),2\tan{r}-\theta\in(0,\pi)\right\}\] 于是有了现在的图标。

如你所见:

  • 这个集合是有界的连通开集,被包含在 \(\{r<\frac{\pi}{2}\}\) 以内,且占据了它一半的面积;
  • 在接近中心的地方,它表现得像太极图那样初等;在接近外围的地方,它又像阿基米德螺线那样盘旋了无数圈。

作图过程中的问题

在 Mathematica 中作图时,遇到了不少问题:

  1. 一开始用的表达式:\[\left(\arctan{\frac{t}{2}}\cos(t-s),\arctan{\frac{t}{2}}\sin(t-s)\right),t\in(0, 200),s\in(0,\pi)\] 这样有个显著的缺点:当 \(t\) 固定时,点随 \(s\) 的变化扫出的是一段半圆弧,所以只有 \(s\) 的取样点足够多时,才不至于看到明显的折角。
    解决方案:把表达式改成\[\left(\arctan{\frac{t+s}{2}}\cos{t},\arctan{\frac{t+s}{2}}\sin{t}\right),t\in(0,200),s\in(0,\pi)\] 当 \(t\) 固定时,点随 \(s\) 的变化扫出的是一条线段,这样 \(s\) 只要取三个样点就可以了。
  2. 采用了新的表达式,极轴下方的“蛇头”却不翼而飞。
    解决方案:不慌不忙地把“蛇头”补上:\[\left(-\arctan{\frac{u}{2}}\cos{u}\,v, -\arctan{\frac{u}{2}}\sin{u}\,v\right),u\in(0, \pi), v\in(0, 1)\]
  3. 由于边界线存在固定宽度,图形外围一片漆黑,而不是设想中的 50% 灰。
    解决方案:不显示边界线。
  4. 去掉边界线之后,原先平滑的边缘变成了锯齿状。这是由于曲线的图像支持抗锯齿,而区域不支持。
    解决方案: 图形抗锯齿工具

题外话

在很长的一段时间内,人们认为平面上的曲线至多是两个不相交区域(即连通开集)的公共边界。上面的图形给出了一个反例: \(\{r=\frac{\pi}{2}\}\) 是三个区域 \(A\)、\(A\) 的中心对称像和 \(\{r>\frac{\pi}{2}\}\) 的公共边界。类似地,可以构造任意多个不相交区域有公共边界的情形。

12 条评论

  1. MathPlusCode说道:

    =。=求帮忙来一发高逼格的 favicon!

  2. Art9说道:

    Firefox 亲测可用,太帅啦!

  3. Art9说道:

    这个是怎么转起来的呢,改了 s 参数没有用,还是说你是在 Photoshop 里转起来的 = =

  4. 电脑爱好者说道:

    把网站顶上转圈的那个也换成这个啊 肯定爆帅

  5. Art9说道:

    新 Logo Header 好赞!

发表评论

电子邮件地址不会被公开。 必填项已用*标注