結びトーラスを作ろう!


  • Global Moderator

    リンゴ曲面の式から、log(対数)の項を除くと、トーラスになってしまいます。

    0_1522479287250_no-log-function.png



  • @ソム さん
    綺麗だしおもしろいですね。パラメータを変えて遊んでみたくなります(^^♪。がしかし!!
    ただ今二次元世界にて迷走中(謎)(;'∀')


  • Global Moderator

    @riffraff さん

    こちらは三次元です。お互い迷走の果てにどこかで出会うことがあるのでしょうか!?


    三葉結びを変形させて、3Dプリント用のオブジェを作っている人がいました:

    0_1522536979872_Thingverse243260.png
    https://www.thingiverse.com/thing:243260

    肝心の部分の関数が公開されていませんが、作者が以下で方法の概要を説明しています。Stereographic Projectionという、世界地図作りに関係しそうな変換を使っているそうです。


  • Global Moderator

    torus knot(今作ろうとしている「結びトーラス」とは別です。トーラス結び?です)には、分類があって、
    alt text
    この元になった結びは、T(3,2)と呼ばれるそうです。詳しいことは理解していません。

    それと似たものに、T(2,3)というのがあって、式の2,3を置き換えればできるようです:
    0_1522541164813_surface-g23.png

    こちらでも、s3Projによって裏返し変換をしてみました。基準点は適当に選びました:
    0_1522541261346_inverted-torus-knot23_1.png

    やはり結びトーラスが出来ました。


  • Global Moderator

    s3Proj 関数によって裏返しを行っている限り、「日本数学会のマーク」のような歪みのない結びトーラスは作れそうにはありません。裏返ったチューブのうち、再外殻となる部分が軸対称にはならないし、内部の結び部分の太さも一定になりません。

    さてどうやるのでしょうか? 「リンゴは結びトーラスを作るヒントだ」で参考にした「ずけやま」さんのところでも、未解決のようです(https://twitter.com/ru_sack/status/919046948866310147 )。

    頭の使いどころです。


  • Global Moderator

    外殻部分のトーラスを作るだけなら簡単です。

    0_1522543806773_horn-torus-cut.png
    手前の1/16を切り取って、内部を見せています。

    Mathematica
    ParametricPlot3D[
     {Cos[u] (1 + Cos[v]), Sin[u] (1 + Cos[v]), Sin[v]},
     {u, -Pi, Pi}, {v, -Pi, Pi}, Mesh -> True, 
     PlotRange -> {{All, 7/8}, All, All}, PlotStyle -> Opacity[0.5], 
     Axes -> None, Boxed -> False]
    

    例として、horn torus という、浮き輪のチューブ部分が内部でぎりぎり接するような形状のものです。

    この場合のパラメトリック曲面は、パラメータu がチューブの中心軸に沿った方向、パラメータ v が、中心軸の周りの回転方向を表現しています。

    他方、結びの曲面を作るのも比較的簡単です。この場合には、チューブの軸に沿った方向のパラメータが t, 軸の周りの回転方向がθで表現されていました。

    これらを合成できれば、結びトーラスが出来そうです。三葉結び曲面の3つある葉のうち、1葉をトーラス曲面になるように変形すればよいわけです。しかし、難しいのは、トーラスの外に相当する部分が、結び曲面ではチューブの中心軸になっていて(またはその逆)、裏返しの関係になっていることです。また、トーラス曲面のパラメータuは結び曲面のパラメータtにそのままでは接続できないということもあります。


  • Global Moderator

    s3Proj はヒントになりそうです。

    例えば、太さが2の直線状のチューブ曲面があって、以下のように原点に基準点(黒丸)があるとします。

    0_1522551106895_knot-in-a-torus.png

    このとき、チューブ曲面上の点(赤丸)を、原点からの距離に応じて青い円断面上に変換する関数があれば、その関数は、無限長のチューブ曲面を、青い円を断面に持つ、ホーン・トーラス曲面に変換するものになります。この関数を求めてみると、基準点からの距離を d としたとき、1/d^2 の距離に移動させる関数であることが分かります。これは、実は、s3Proj そのものでした。

    つまり、s3Proj をうまくつかえば、外殻のトーラスは歪み無く作れるということです。元のチューブ曲面が直線であり、基準点を中心軸上に置けばそうなります。

    0_1522551858879_s3Proj1.png


  • Global Moderator

    これすなわち、何を意味するかというと、ホーン・トーラスを、チューブのパラメータ t と θで表現可能ということです。元の曲面を先のコメントのピンク色のチューブ {cosθ, sinθ, t} として、これを s3Projで変換すればよいわけです。

    こうなります:

    0_1522557800723_t-theta-HornTorus.png

    あとは、これを結び曲面に接続してやるとよさそうです。


  • Global Moderator

    クラインの壷の練習。

    0_1524382285058_KleinsBottle_.png

    Mathematica
    x[u_, v_] := If[v < 2 Pi, (2.5 - 1.5*Cos[v])*Cos[u],
       If[v < 3 Pi, -2 + (2 + Cos[u])*Cos[v],
        -2 + 2 Cos[v] - Cos[u]]];
    y[u_, v_] := If[v < 2 Pi, (2.5 - 1.5 Cos[v])*Sin[u],
       Sin[u]];
    z[u_, v_] := If[v < Pi, -2.5*Sin[v],
       If[v < 2 Pi, 3 v - 3 Pi,
        If[v < 3 Pi, (2 + Cos[u])*Sin[v] + 3 Pi,
         -3 v + 12 Pi]]];
    
    ParametricPlot3D[{x[u, v], y[u, v], z[u, v]}, {u, 0, 2 Pi}, {v, 0, 
      4 Pi}, Exclusions -> None, PlotStyle -> Opacity[0.2], 
     Boxed -> False, Axes -> None, MaxRecursion -> 15, PlotPoints -> 100, 
     PlotTheme -> "ThickSurface"]
    

    v が一周してきたところに継ぎ目が出来てしまうのは、仕様?みたい。


  • Global Moderator

    このクラインの壷の式は、ある物理学者がGnuplotを解説されているページから拝借したものです。
    http://www.gnuplotting.org/tag/pm3d/

    以下は私の解釈です。

    曲面は、u, v の2変数で記述されていて、u がチューブの円周方向の、v がチューブの軸方向の曲面位置を記述しています。v について、条件分けがあって、4つの部品から構成されています:

    0_1524385124114_KleinsBottle-2-01.png


  • Global Moderator

    結びトーラス攻略のために、ヒントを探しています。

    2016年度川崎ゼミ卒業研究に、「こま結び」が出てきます。
    http://pc1.math.gakushuin.ac.jp/~kawasaki/HTML16kawasemi/html16kawasemi0.html

    この作り方は、結びトーラスの結び部分の作り方の参考になりそうです:
    http://pc1.math.gakushuin.ac.jp/~kawasaki/HTML16kawasemi/html16kawasemi6-4.html

    基礎知識として「曲面の幾何学」という教科書を買ってきました。勉強になるかもしれません。本屋で見ている時に「反転」という操作が出てきて、「極限トーラスは直円柱に反転(回転軸上の点を反転中心にもつ)を施すことによって得られる」という図が載っていることをみつけました。以前の発見と同じです

    曲面の幾何学


  • Global Moderator

    「曲面の幾何学」でまず勉強になったのは、フレネ・フレーム(Frenet frame)の考え方でした。

    曲線があったとき、各点におけるフレーム(座標系のようなもの?)を考えます。曲線を飛行物体の軌跡とみなしたとき、その速度単位ベクトルを接線ベクトルT,加速度単位ベクトルを法線ベクトルNとします。このときTとNは直交しますが、さらにそれら2つに直交する単位ベクトルTxNを従法線ベクトルBとします。

    0_1531027870093_frenetFrame1.gif

    ベクトル T, N, B には、ある関係が成り立つ(フレネ・セレの公式;ここでは省略します)というのが、この分野(微分幾何学?)の基本的な公式だそうです。

    ここでこれを取り上げたのは、チューブ状の曲面を作るときに便利な考え方だからです。T, N, B は各点での局所的な座標系を定義する軸となるので、この N,B 平面上に円を描けばチューブ曲面になります。出来ることが増えたわけではないですが、頭が整理された感じがしました。

    0_1531028171011_frenetFrame1-tube.png


  • Global Moderator

    結びトーラスのために、川崎ゼミの卒業研究発表を参考にして、結び目の曲線を作ってみました。

    0_1531028559932_musubi1.png  0_1531028567408_musubi2.png

    9つの部分から出来上がっています。かなり複雑です。結び目の交差しているところ(図の赤・青の部分)は二重螺旋です。それ以外は円弧と直線です。この二重螺旋を使うというアイデアが特にヒントになりました。

    この曲線から、Frenet frameを計算すれば、結び目のチューブ曲面を作ることが出来るはずです。


  • Global Moderator

    「結びトーラス」の手強さはいくつかあります。

    以前にたどり着いた、円柱を裏返す(反転する)方法によって、トーラス部分を作ることはできます。

    0_1531056063458_inverted-cylinder.png

    あとは、この間の部分に結び目の曲面を繋げばよさそうに思えます。しかし問題があります:

    • この反転によって作ったトーラスは、表面にある曲率線の間隔の変化の様子がオリジナルの「結びトーラス」とは違って見えます。
    • 単純にチューブ曲面を繋ぐと、繋ぎ目が滑らかになりません。面の傾きが垂直になる部分で繋ぐ必要がありますが、トーラスでは、中心部分でしかそうなりません。

    とにもかくにも、結び目の曲面・トーラス曲面のそれぞれは作れても、間を繋ぐのが難しいです。



パズルハウスへの接続が失われたと思われます。再接続されるまでしばらくお待ちください。