Created
June 22, 2024 21:02
-
-
Save empet/1d1c18eb66f9e5c2f68bdb6c0aab33c6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "b1b4313c", | |
"metadata": {}, | |
"source": [ | |
"## <center> The Hopf torus as the preimage of the Viviani's curve </center>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "c3591e7f", | |
"metadata": {}, | |
"source": [ | |
"The common Viviani's curve on the unit sphere is defined as the intersection between the sphere $x^2+y^2+z^2=1$ and the cylinder $(x-1/2)^2+y^2=1/4$. If the sphere is parameterized by longitude and latitude:\n", | |
"$$\\begin{array}{lll} x&=&\\cos(\\theta)\\cos(\\varphi)\\\\\n", | |
"y&=&\\sin(\\theta)\\cos(\\varphi), \\quad \\theta\\in (-\\pi, \\pi], \\varphi\\in[-\\pi/2, \\pi/2]\\\\\n", | |
"z&=&\\sin(\\varphi),\\end{array}$$\n", | |
"then the intersection curve has the parameterization derived\n", | |
"from the sphere parameterization, with $\\theta=\\varphi$.\n", | |
"Replacing x,y,z in the cylinder equation we get that $\\cos(\\theta)=\\cos(\\varphi)$, i.e $\\theta=\\varphi$. Hence the Viviani's curve has the parameterization:\n", | |
"$$\\begin{array}{lll}x&=&\\cos^2(\\theta)\\\\\n", | |
" y&=&0.5\\sin(2\\theta), \\quad \\theta\\in (-\\pi, \\pi]\\\\\n", | |
" z&=&\\sin(\\theta)\\end{array}$$\n", | |
"Taking into account that $cos(\\theta)=1-2\\sin^2(\\theta/2)$\n", | |
"we get the following parameterization of the Viviani's curve, where $t/2=\\theta$, \n", | |
" $t\\in(-2\\pi, 2\\pi]$:\n", | |
"\n", | |
"$$\\begin{array}{lll}\n", | |
" x&=&0.5(1+\\cos(t))\\\\\n", | |
" y&=&0.5\\sin(t)\\\\\n", | |
" z&=&\\sin(t/2)\n", | |
" \\end{array}$$" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "c630f418", | |
"metadata": {}, | |
"source": [ | |
"To get the Hopf torus as the preimage through the Hopf map, $h:\\mathbb{S}^3\\to\\mathbb{S}^2$, $h(q)=q*k*q^{-1}$, we rotate this version of the Viviani's curve, about y-axis, with an angle of $\\pi/2$.\n", | |
"After such a rotation the new Viviani's curve is the intersection\n", | |
" of the unit sphere to the cylinder $(x^2+(z+1/2)^2=1/4$, and it is parameterized by:\n", | |
"\n", | |
"$$\\begin{array}{lll}x&=&\\sin(t/2)\\\\\n", | |
" y&=&0.5\\sin(t)\\quad t\\in(-2\\pi, 2\\pi]\\\\\n", | |
" z&=&-0.5(1+\\cos(t))\\end{array}$$" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "a9b80f94", | |
"metadata": {}, | |
"source": [ | |
"![viviani def](https://github.com/empet/Datasets/blob/master/Images/viviani-intersection.png?raw=true)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "d7d389a6", | |
"metadata": {}, | |
"source": [ | |
"The preimage of the Viviani's curve through the Hopf map is a Hopf torus consisting in two tori,\n", | |
"each one coresponding to a loop in the auto-intersecting Viviani's curve:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "8f094f20", | |
"metadata": {}, | |
"source": [ | |
"%%html\n", | |
"<img src=\"https://github.com/empet/Datasets/blob/master/Images/viviani-hopftor.gif?raw=true\">" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "4cfd522d", | |
"metadata": {}, | |
"source": [ | |
"The fibres corresponding to 40 points on this version of Viviani's curve:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "237971ed", | |
"metadata": {}, | |
"source": [ | |
"![hopf fibs viviani](https://github.com/empet/Datasets/blob/master/Images/Hopf-fibs-viviani.png?raw=true)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "3b86bd94", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"@webio": { | |
"lastCommId": "df909072a9924f988abb4d4288f50262", | |
"lastKernelId": "fe0914b2-68dc-4b54-bf1c-29b1858140a1" | |
}, | |
"kernelspec": { | |
"display_name": "Julia 1.9.0", | |
"language": "julia", | |
"name": "julia-1.9" | |
}, | |
"language_info": { | |
"file_extension": ".jl", | |
"mimetype": "application/julia", | |
"name": "julia", | |
"version": "1.9.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment