Surface Normals and Orientability
Normal Vector
Another finding is that \(\partial_u\sigma(u_0, v_0)\times \partial_v\sigma(u_0, v_0)\) is perpendicular to \(T_p\Sigma\) since the cross product is perpendicular to the spanning vectors of the plane. Therefore, define the unit normal vector of \(\Sigma\) at \(p\) as
Note that the tangent plane is independent of the choice of the path. Therefore, there are only 2 possible normal vectors. Say \(\hat N(p) = \frac{\partial_u\sigma(u_0, v_0)\times \partial_v\sigma(u_0, v_0)}{\|\partial_u\sigma(u_0, v_0)\times \partial_v\sigma(u_0, v_0)\|}\), then another possible reparameterization of the surface patch will result in \(\tilde N(p) = \frac{\partial_v\sigma(u_0, v_0)\times \partial_u\sigma(u_0, v_0)}{\|\partial_v\sigma(u_0, v_0)\times \partial_u\sigma(u_0, v_0)\|}=-\hat N(p)\)
Reparameterization of Surface Patches
Note that a corollary of the regularity condition: Consider the intersection of the 2 surface patch of a regular surface \(\sigma_1: U_1\rightarrow V_1, \sigma_2: U_2\rightarrow V_2. V_1\cap V_2\neq\emptyset\). Then, let \(f:U_1\rightarrow U_2\) be the map from one plane to another. Then, \(f\) is invertible, and \(f\) and \(f^{-1}\) are both differentiable.
Claim If \(\sigma: U\rightarrow V\) is a regular coordinate patch of a surface and \(f: \tilde U\rightarrow U\) is a reparameterization. Then \(\sigma\circ f: \tilde U\rightarrow V\) is also a regular coordinate patch.
Another interesting finding is that the normal vector of the reparameterized tangent plane.
Therefore, the unit normal will be
Orientable Surface
From the above findings, we can define an surface's orientability through its atlas A surface \(\Sigma\) is orientable if exists an atlas with the property that, if \(f\) is the transition map between any two surface patches, then \(\det(Df) > 0\). In other words, for any two overlapping surface patches \(\sigma_1: U_1\rightarrow V_1, \sigma_2: U_2\rightarrow V_2. V_1\cap V_2\neq \emptyset\) the transition map \(f:= \sigma_1^{-1}\circ \sigma_2:W_2\rightarrow W_1\) where \(W_i = \sigma_i^{-1}(V_1\cap V_2)\subseteq U_i\) has a positive Jacobian determinant.
Equivalently, there exists a unit normal function \(\hat N_\Sigma: \Sigma\rightarrow C = \{(x,y,z): x^2+y^2+z^2=1\}\) where \(\hat N_\Sigma\) is smooth and continuous. In other words, the change is unit normal vector along any path on the surface must be continuous.
Example: Mobius Band (Non-orientable)
The Mobius band is the surface obtained by rotating a straight line segment \(l\) around its midpoint \(p\) at the same time as \(p\) moves around a circle \(C\).
Source code
import plotly.graph_objects as go
import numpy as np
t = np.arange(0, 2*np.pi, 0.05 * np.pi)
p = np.array((np.cos(t), np.sin(t), np.zeros_like(t)))
orient = np.array((np.sin(t/2), np.zeros_like(t), np.cos(t/2))) / 2.
top = p + orient
bot = p - orient
surface = np.empty((3, top.shape[1] * 2))
surface[:, ::2] = top
surface[:, 1::2] = bot
fig = go.Figure(
data=[
go.Scatter3d(x=top[0], y=top[1], z=top[2], mode="lines", name="'top'"),
go.Scatter3d(x=bot[0], y=bot[1], z=bot[2], mode="lines", name="'bottom'"),
go.Scatter3d(x=surface[0, ::3], y=surface[1, ::3], z=surface[2, ::3], mode="lines", name="normal")
],
)
fig.update_layout(margin=dict(l=0, r=0, b=0, t=0), height=480)
with open("../assets/mobius.json", "w") as f:
f.write(fig.to_json())
As shown in the example, let \(C\) be the unit circle, and \(l\) be the line segment connecting \((0,0, -1/2), (0,0, 1/2)\).
The Mobius band can be parameterized by 2 surface patches
where \(U_1 = (-1/2, 1/2) \times (0,2\pi), U_2 = (-1/2, 1/2)\times (-\pi, \pi)\).
Consider the unit normal
Note that the unit normal vector \(\hat N = N\) since \(\|N\| = 1\) Then, note that
contradict with the orientability assumption.
Furthermore, a surface is non-orientable if it contains a sub surface diffeomorphic to the Mobius band.