三つ葉結び目を描いてみましょう。
まずは2次元平面への投影図です。
/* 3.6.4m */ a : 1.0$ b : 0.4$ r(t) := a + b*cos(3*t/2)$ plot2d([parametric, r(t)*cos(t), r(t)*sin(t), [t, 0, 4*%pi + 0.1], [nticks, 200]], [x, -2.0, 2.0], [y, -1.5, 1.5])$
案の定わかりにくいですね。
3次元プロットしてみましょう。
/* 3.6.5m */ load(draw)$ a : 1.0$ b : 0.4$ c : 0.5$ r(t) := a + b*cos(3*t/2)$ z(t) := c*sin(3*t/2)$ draw3d([nticks = 100], parametric(r(t) * cos(t), r(t) * sin(t), z(t), t, 0, 4*%pi + 0.1))$
まだ見にくいです。
線をチューブにしてみましょう。
/* 3.6.9m */ a : 1.0$ b : 0.4$ c : 0.5$ d : 0.3$ r(t) := a + b*cos(1.5*t)$ z(t) := c*sin(1.5*t)$ x(t) := r(t)*cos(t)$ y(t) := r(t)*sin(t)$ qqx(t) := -((1.0 + 0.3*cos(1.5*t))*sin(t)) - 0.45*cos(t)*sin(1.5*t)$ qqy(t) := cos(t)*(1.0 + 0.3*cos(1.5*t)) - 0.45*sin(t)*sin(1.5*t)$ qqz(t) := 0.75*cos(1.5*t)$ norm(t) := sqrt(qqx(t)^2 + qqy(t)^2 + qqz(t)^2)$ qx(t) := qqx(t)/norm(t)$ qy(t) := qqy(t)/norm(t)$ qz(t) := qqz(t)/norm(t)$ normv(t) := sqrt(qx(t)^2 + qy(t)^2)$ vx(t) := qy(t)/normv(t)$ vy(t) := -qx(t)/normv(t)$ wx(t) := -qz(t)*vy(t)$ wy(t) := qz(t)*vx(t)$ wz(t) := qx(t)*vy(t) - vx(t)*qy(t)$ xx(t, u) := x(t) + d*(vx(t)*cos(u) + wx(t)*sin(u))$ yy(t, u) := y(t) + d*(vy(t)*cos(u) + wy(t)* sin(u))$ zz(t, u) := z(t) + d*(wz(t)*sin(u))$ plot3d([xx(t, u), yy(t, u), zz(t, u)], [t, 0, 4*%pi + 0.31], [u, 0, 2*%pi], [grid, 100, 20])$
別の3次元パラメトリックプロットの例として、メビウスの帯を描いてみましょう。
/* 3.6.11m */ a : 1.0$ b : 0.5$ r(t, v) := a + b*v*cos(t/2)$ x(t, v) := r(t, v)*cos(t)$ y(t, v) := r(t, v)*sin(t)$ z(t, v) := b*v*sin(t/2)$ plot3d([x(t, v), y(t, v), z(t, v)], [t, 0, 2*%pi], [v, -1, 1], [grid, 30, 4])$
参考文献
- Crandall, Mathematica―理工系ツールとしての (アジソン ウェスレイ・トッパン情報科学シリーズ) p.29-p.35