曲面是平面区域 `D` 到 `E^3` 的映射 `bm r(u,v) = (x(u,v), y(u,v), z(u,v))`, 满足
曲面的参数变换
设 `bm r(u, v): D |-> E^3`,
`sigma: bar D |-> D`
`(bar u, bar v) |-> (u, v)`,
若 `sigma` 一阶连续可微,
则切向量微元具有变换
`["d"u; "d"v] = J ["d"bar u; "d"bar v]`,
`quad J = (del(u,v))/(del(bar u, bar v))`
`= [u_(bar u), u_(bar v); v_(bar u), v_(bar v)]`.
`|J| != 0` 时, `bm r` 有新参数表示
`bm r(u(bar u, bar v), v(bar u, bar v))`.
如果存在满足上述条件的参数变换使两个曲面的表达式相同,
则视它们为相同的曲面.
在上述变换下, 坐标切向量 `bm r_u` 和 `bm r_v` 的变换公式为
`[bm r_(bar u), bm r_(bar v)] = [bm r_u, bm r_v] J`,
`bm r_(bar u) ^^ bm r_(bar v) = bm r_u ^^ bm r_v |J|`.
形象记忆: 由 `["d"u; "d"v] = (del(u, v))/(del(bar u, bar v)) ["d"bar u; "d"bar v]`, 得到 `[bm r_(bar u), bm r_(bar v)]` `= (del bm r)/(del(bar u,bar v))` `= (del bm r)/(del(u, v)) (del(u, v))/(del(bar u, bar v))` `= [bm r_u, bm r_v] J`.
球面 `x^2 + y^2 + z^2 = a^2` 有球坐标表示 `{ x = a cos u cos v; y = a cos u sin v; z = a sin u; :}`, `quad u in [-pi/2, pi/2]`, `v in [0, 2pi]`. 和球极投影坐标表示: `{ x = 2a^2 u // d^2; y = 2a^2 v // d^2; z = a delta^2 // d^2; :}`, `quad u, v in RR`. 其中 `P(u, v, 0)` 是赤道平面上的一点, `(x, y, z)` 是 `P` 到北极 `N(0, 0, a)` 的连线与球面的交点. `d = sqrt(u^2 + v^2 + a^2)` 是 `P` 到 `N` 的距离, `delta = sqrt(u^2 + v^2 - a^2)` 是 `P` 到球面的切线长.
旋转面
`xz` 平面上与 `z` 轴无交的曲线 `{x = x(u); z = z(u) :}`
绕 `z` 轴旋转得到
`{x = x(u) cos v; y = x(u) sin v; z = z(u) :}`.
特别当 `x(u) = a cos u`, `z(u) = a sin u` 时, 得到球面.
柱面
`xy` 平面上的曲线 `{x = x(u); y = y(u) :}` 沿 `z` 轴平移得到
`{x = x(u); y = y(u); z = v :}`.
直纹面
称直线沿空间曲线 `bm r = bm a(u)` 滑动扫过的曲面
`bm r(u,v) = bm a(u) + v bm b(u)`
为直纹面. 其中 `bm a` 表示直线与曲线的交点, `bm b` 表示直线在该点的方向.
方程中取定一个 `u`, 就确定一条直母线. 当 `bm a` 为常向量时, 为锥面;
当 `bm b` 方向不变时, 为柱面. 当 `bm b` 始终沿曲线切向时, 方程形如
`bm r(u,v) = bm a(u) + v bm a'(u)`,
称为曲线 `bm r(u)` 的切线面, 它包含了 `bm r(u)` 的全体切线.
称 `bm r_u`, `bm r_v` 为坐标切向量. 它们线性无关, 从而确定了曲面 `S` 在点 `P_0 = (u, v)` 处的切平面 `T_0`. `S` 上过 `P_0` 的任一曲线在 `P_0` 的切向量落在切平面 `T_0` 上; 反之, 对切平面 `T_0` 上的任一向量 `bm t`, 存在曲面上过 `P_0` 的一曲线, 它在 `P_0` 的切向量与 `bm t` 同向.
`bm r_u ^^ bm r_v` 是曲面的一个法向量. `bm n = (bm r_u ^^ bm r_v)/|bm r_u ^^ bm r_v|` 是曲面的一个单位法向量. 法向量所在直线称为法线.
当曲面由方程 `F(bm r) = c` 给出时, 方程两边对 `u, v` 分别求导得 `(:grad F, bm r_u:) = (:grad F, bm r_v:) = 0`, 故 `grad F` 是曲面的法向量, `(:grad F, bm r - bm r_0:) = 0` 是 `bm r_0` 处的切平面.
曲面的切平面, 法线与参数选取无关.
`"I" = "d"s^2 = "d" bm r^2`
`= (bm r_u "d"u + bm r_v "d" v)^2`
`= ["d"u, "d"v][bm r_u^T; bm r_v^T][bm r_u, bm r_v]["d"u; "d"v]`
`= ["d"u, "d"v][E, F; F, G]["d"u; "d"v]`
`= E "d"u"d"u + 2F "d"u"d"v + G"d"v"d"v`.
其中
`E = (:bm r_u, bm r_u:)`,
`quad F = (:bm r_u, bm r_v:)`,
`quad G = (:bm r_v, bm r_v:)`.
第一基本形式是正定的二次型, 是曲面上的度量.
它在合同变换下不变, 与参数选取无关.
将参数变换 `["d"u; "d"v] = J ["d"bar u; "d"bar v]`, `quad [bm r_(bar u), bm r_(bar v)] = [bm r_u, bm r_v] J` 代入得 `"I" = ["d"bar u, "d"bar v][bm r_(bar u)^T; bm r_(bar v)^T] [bm r_(bar u), bm r_(bar v)]["d"bar u; "d"bar v]`, 第一基本形式不变.
`F = 0` 当且仅当 `(u, v)` 是正交参数.
第一基本形式和下文的第二基本形式是所谓的 "微分形式", 即微分 `"d"u`, `"d"v` 等与函数的算术组合. 设 `bm v` 是曲面上一点处的切向量, 将它分解为 `bm r_u, bm r_v` 的线性组合 `bm v = xi bm r_u + eta bm r_v`, 则 `v^2 = (:bm v, bm v:)` `= E xi^2 + 2F xi eta + G eta^2`.
from sympy import * u, v, a = S('u,v,a') d = sqrt(u**2+v**2+a**2) r = [2*a**2*u/d**2, 2*a**2*v/d**2, a*(u**2+v**2-a**2)/d**2] ru = [diff(ri, u) for ri in r] rv = [diff(ri, v) for ri in r] E = simplify(sum(ri*ri for ri in ru)) G = simplify(sum(ri*ri for ri in rv)) F = simplify(sum(ru[i] * rv[i] for i in range(3))) print('E:', E) print('G:', G) print('F:', F) print('E - ((2*a**2)/d**2)**2 ==', simplify(E - ((2*a**2)/d**2)**2))
为把 `cos varphi` 换成 `y` 的函数, 令 `t = tan(varphi/2 + pi/4)`, 则 `t = "e"^(y//R)`, `cos varphi` `= sin(varphi + pi/2)` `= (2t)/(1+t^2)` `= 2/("e"^(y//R) + "e"^(-y//R))` `= 1//cosh(y//R)`.
球极投影参数和墨卡托投影十分特殊, 它们是共形映射, 定义如下:
如果在某个参数选取下第一基本形式的 `E = G` 且 `F = 0`, 则称这个参数为等温参数或共形参数. 从参数空间到曲面的映射 `bm r(u, v)` 称为共形映射 (conformal map)或保角映射. 这个称呼的由来如下: 参数空间的每个点 `z := (u, v)` 的小位移 `dz` 被映射到曲面上的小曲线段 `"d"s`, 通常 `"d"s` 不仅和 `z` 的位置有关, 还和 `dz` 的方向有关. 但如果第一基本形式形如 `"I" = f(z) dz^2`, 它就只与 `z` 有关, 这意味着在参数平面上一个小三角形充分接近 `z` 的时候, 它在曲面上的像是一个与它相似的三角形. 即, 共形映射 `bm r(u, v)` 保持角度不变.
`"II" = -(:"d"bm r, "d"bm n:)`
`= - ["d"u, "d"v][bm r_u^T; bm r_v^T][bm n_u, bm n_v]["d"u; "d"v]`
`= ["d"u, "d"v][L, M; M, N]["d"u; "d"v]`
`= L"d"u"d"u + 2M"d"u"d"v + N"d"v"d"v`.
其中 (通过分部积分)
`L = -(:bm r_u"," bm n_u:) = (:bm r_(u u)"," bm n:)`,
`M = -(:bm r_v"," bm n_u:)`
`= -(:bm r_u"," bm n_v:)`
`= (:bm r_(uv)"," bm n:)`,
`N = -(:bm r_v"," bm n_v:) = (:bm r_(v v)"," bm n:)`.
第二基本形式在同向参数变换 (`|J| gt 0`) 下不变,
反向则变号; 在同向刚体运动 (`|T| = 1`) 下不变, 反向则变号.
因为 `bm n` 的长度不变, 所以 `(:bm n_u, bm n:) = (:bm n_v, bm n:) = 0`, 故 `bm n_u, bm n_v` 落在切平面上, 它们也是切向量.
记 `bm r = bm r(u,v)`, `bm r_0 = bm r(u_0, v_0)`, `bm n_0 = bm n(u_0, v_0)`, 定义曲面高度函数 `f(u, v) = (:bm r - bm r_0, bm n_0:)`, 则 `f_u = (:bm r_u, bm n_0:)`, `f_v = (:bm r_v, bm n_0:)`, `"II" = ["d"u, "d"v] [{:f_(u u):}, {:f_(uv):}; {:f_(vu):}, {:f_(v v):}]["d"u; "d"v]`.
平面 `bm r(u,v) = (u, v, 0)`. 注意 `bm n` 为常向量, 故 `"II" = -(:"d"bm r, "d"bm n:) = 0`.
柱面 `bm r(u,v) = (x(u), y(u), v)`. 记 `kappa = |x_u, y_u; x_(u u), y_(u u)|`, 有 `"II" = -kappa "d"u"d"u`.
球面 `bm r(theta, varphi) = (a cos theta cos varphi, a cos theta sin varphi, a sin theta)`. `"II" = a "d"theta"d"theta + a cos^2 theta "d"varphi"d"varphi`.
设曲面上有一曲线 `bm r`, `s` 是其弧长参数. `bm r` 在一点的单位切向量为 `("d"bm r)/("d"s)`, 曲率向量为 `("d"^2 bm r)/{:"d"s:}^2`. 利用分部积分计算曲率向量与法向量的内积: ` (: ("d"^2 bm r)/{:"d"s:}^2, bm n :) = -(:("d"bm r)/("d"s), ("d"bm n)/("d"s):) = L(("d"u)/("d"s))^2 + 2M("d"u)/("d"s)("d"v)/("d"s) + N(("d"v)/("d"s))^2`. 上式只与曲线在一点处的单位切向量 `("d"bm r)/("d"s) = (("d"u)/("d"s), ("d"v)/("d"s))` 以及曲面的第二基本形式有关, 而与曲线选取无关. 这启发我们作出如下定义:
已知曲面上一点处的单位切向量 `bm v = xi bm r_u + eta bm r_v`, 定义 `k_n(bm v) = L xi^2 + 2M xi eta + N eta^2`, 称为曲面在该点处沿给定方向的法曲率. 若 `bm v` 是任意非零切向量, 则沿 `bm v` 方向的法曲率等于 `k_n(bm v) = k_n(bm v/v) = 1/v^2 (L xi^2 + 2M xi eta + N eta^2) = (L xi^2 + 2M xi eta + N eta^2)/(E xi^2 + 2F xi eta + G eta^2)`.
法曲率反映了曲面沿给定方向的弯曲程度. 将曲面沿 `bm v, bm n` 所在平面 "切开", 则剖面边缘 (视为平面曲线) 的曲率就是 `k_n`. 法曲率在同向参数变换/刚体运动下不变, 反向则变号.
类比于微积分中, 导数 `dy/dx` 是微分 `dy` 与 `dx` 之商, 法曲率 `k_n` 是第二基本形式与第一基本形式之商.
Gauss 映射 将曲面上的一点映为该点处的法向量 (`S_2` 为单位球面):
`bm g: S |-> S^2`
`bm r(u, v) |-> bm n(u, v)`.
Weingarten 变换 `cc W` 是 Gauss 映射的导映射 (符号取反),
它是切平面上切向量间的线性变换. 我们定义 `cc W(bm r_u) = -bm n_u`,
`cc W(bm r_v) = -bm n_v`; 一般地,
`cc W: T_0 |-> T_0`
`a bm r_u + b bm r_v |-> -a bm n_u - b bm n_v`.
Weingarten 变换也可以用于微分形式:
`cc W("d"bm r)`
`= cc W(bm r_u "d"u + bm r_v "d"v)`
`= -bm n_u "d"u - bm n_v "d"v`
`= -"d"bm n`.
也有定义 Weingarten 变换为 `cc W("d"bm r) = "d"bm n` 的.
Weingarten 变换与曲面的参数选取无关.
在参数替换 `["d"u; "d"v] = J ["d"bar u; "d"bar v]` 下,
`a bm r_u + b bm r_v`
`= [bm r_u, bm r_v] [a; b]`
`= [bm r_(bar u), bm r_(bar v)] J^-1 [a; b]`,
`-a bm n_u - b bm n_v`
`= -[bm n_u, bm n_v] [a; b]`
`= -[bm n_(bar u), bm n_(bar v)] J^-1 [a; b]`,
替换后的两向量仍满足 Weingarten 变换的定义.
曲面沿单位切向量 `bm t` 的法曲率可用 Weingarten 变换刻画: `k_n(bm t) = (:cc W(bm t), bm t:)`.
设 `bm t = a bm r_u + b bm r_v`, 则 `cc W(bm t) = -a bm n_u -b bm n_v`, `(:cc W(bm t), bm t:)` `= a^2 L + 2 a b M + b^2 N` `= k_n(bm t)`.
Weingarten 变换是自共轭变换: `AA bm v, bm w in T_0`, `(:cc W(bm v), bm w:) = (:cc W(bm w), bm v:)`. 特别取两个向量为切平面的单位正交基底 `bm e_1, bm e_2` 时, 由上式知 Weingarten 变换在正交基底下的矩阵为二阶实对称阵.
设 `bm v = a bm r_u + b bm r_v`, `bm w = c bm r_u + d bm r_v`, 则 `cc W(bm v) = -a bm n_u -b bm n_v`, `cc W(bm w) = -c bm n_u - d bm n_v`, `(:cc W(bm v), bm w:)` `= a c L + (a d + b c) M + b d N` `= (:cc W(bm w), bm v:)`.
Weingarten 变换的矩阵即 Gauss 映射的 Jacobi 阵 (取反). 一般地, 函数 `(x, y, z) |-> (P(x, y, z), Q(x, y, z), R(x, y, z))` 的导线性变换为 `cc A(bm i, bm j, bm k) = (bm i, bm j, bm k) [P_x, P_y, P_z; Q_x, Q_y, Q_z; R_x, R_y, R_z]` `= (bm i, bm j, bm k) J`. `J` 是导线性变换的矩阵, 即 Jacobi 阵.
由线性代数中实对称矩阵的结论知, Weingarten 变换的两个特征值是实数. 它们不相等时, 有两个相互正交的特征向量; 相等时, 任一切向量都是特征向量.
称 Weingarten 变换的两个特征值 `k_1, k_2` 为主曲率, 相应的特征向量为主方向. 由 知道, 主曲率就是主方向上的法曲率.
Euler 公式 设 `k_1, k_2` 为主曲率, `bm e_1, bm e_2` 为相应主方向的单位向量, 利用 计算知, 法曲率可用主曲率表达: ` k_n(bm e_1 cos theta + bm e_2 sin theta) = k_1 cos^2 theta + k_2 sin^2 theta`. 可以看出, 当 `k_1 != k_2` 时, `k_n` 在主方向上取得极值; `k_1 = k_2` 时, 各方向上的法曲率相等.
计算 Gauss 曲率 `K = k_1 k_2` 与平均曲率 `H = (k_1 + k_2)/2`.
由定义, Gauss 曲率等于 Weingarten 变换 `cc W` 的行列式,
平均曲率等于 `cc W` 的迹的一半.
设 `cc W` 在基 `(bm r_u, bm r_v)` 下的矩阵为
`bm A = [a, b; c, d]` (未必对称), 即
`cc W(bm r_u) = -bm n_u = a bm r_u + b bm r_v`,
`cc W(bm r_v) = -bm n_v = c bm r_u + d bm r_v`.
以上两式分别与 `bm r_u, bm r_v` 作内积, 得
`[L, M; M, N] = [a, b; c, d][E, F; F, G]`,
即
`[a, b; c, d] = [L, M; M, N][E, F; F, G]^-1`.
易知 Gauss 曲率
`K = |a,b; c,d| = |L,M; M,N|//|E,F; F,G|`.
平均曲率 `H = (a+d)//2`.
Gauss 曲率 `K` 满足 `bm n_u ^^ bm n_v` `= (a bm r_u + b bm r_v) ^^ (c bm r_u + d bm r_v)` `= (ad-bc) bm r_u ^^ bm r_v = K bm r_u ^^ bm r_v`. 直观上, Gauss 映射将曲面上的小块邻域映到单位球面上的区域. 对应区域的面积之比 `K = |bm n_u ^^ bm n_v|/|bm r_u ^^ bm r_v|` 就是 Gauss 曲率.
曲面的第三基本形式定义为 `"III" = (:"d"bm n, "d"bm n:)`, 它也是正定二次型, 且有 `K "I" - 2H "II" + "III" = 0`.
即证 `(:("d"bm n)/("d"s), ("d"bm n)/("d"s):) + 2H(:("d"bm r)/("d"s), ("d"bm n)/("d"s):) + K = 0`. 记 `("d"bm r)/("d"s) = bm e_1 cos theta + bm e_2 sin theta`, 则上式左边等于 `k_1^2 cos^2 theta + k_2^2 sin^2 theta - (k_1 + k_2)(k_1 cos^2 theta + k_2 sin^2 theta) + k_1 k_2` `= 0`.
直接计算
`bm r_u = (f'(u)cos v, f'(u)sin v, g'(u))`,
`bm r_v = (-f(u)sin v, f(u)cos v, 0)`,
`E = {:f':}^2+{:g':}^2`, `quad F = 0`, `quad G = f^2`,
`L = (f' g'' - f'' g')/sqrt E`, `quad M = 0`,
`quad N = (fg')/sqrt E`,
`k_1 = L/E`, `quad k_2 = N/G`,
`quad K = k_1 k_2`, `quad H = (k_1 + k_2)/2`.
若取 `u` 为 `xz` 平面上曲线 `(f(u), g(u))` 的弧长参数, 则
`{:f':}^2 + {:g':}^2 = 1`, `f'f'' + g'g'' = 0`, 由此推出
` f'g'' - f''g' = -(f'')/(g')`.
上面各式有比较简单的表达式
`E = 1`, `quad F = 0`, `quad G = f^2`,
`L = -(f'')/(g')`, `quad M = 0`, `quad N = fg'`,
`k_1 = -(f'')/(g')`, `quad k_2 = (g')/f`,
`quad K = -(f'')/f`, `quad H = 1/2 ((g')/f - (f'')/(g'))`.
曲面上两个主曲率相等的点称为脐点. 由法曲率的定义知, 脐点处第二基本形式与第一基本形式的系数成比例, 即 `L/E = M/F = N/G = a`, `a != 0` 时, 这一点称为圆点, `a = 0` 时称为平点. 例如球面上各点均为圆点, 平面各点均为平点.
The catenoid (Euler, 1740) `sqrt(x^2+y^2) = cosh z`.
此为旋转曲面, 取参数
`bm r = (u cos v, u sin v, "arch "u)`
`= (u cos v, u sin v, ln(u + sqrt(u^2-1)))`,
令 `f(u) = u`, `g(u) = ln(u + sqrt(u^2-1))`, 则
`E = {:f':}^2+{:g':}^2`
`= 1 + 1/(u^2-1) = u^2/(u^2-1)`,
`quad F = 0`, `quad G = f^2 = u^2`,
`L = (f' g'' - f'' g')/sqrt E`
`= -u/(u^2-1)^(3//2) * sqrt(u^2-1)/u = 1/(1-u^2)`,
`quad M = 0`,
`quad N = (fg')/sqrt E = u/sqrt(u^2-1) * sqrt(u^2-1)/u = 1`,
`k_1 = L/E = 1/(1-u^2) * (u^2-1)/u^2` `= -1/u^2`,
`quad k_2 = N/G = 1/u^2`,
`quad K = k_1 k_2 = -1/u^4`, `quad H = (k_1 + k_2)/2 = 0`.
The helicoid (Meusnier, 1776) `tan z = x//y`.
取参数 `bm r = (u v, v, arctan u)`, 则
`bm r_u = (v, 0, 1/(1+u^2))`,
`bm r_v = (u, 1, 0)`,
`bm r_u ^^ bm r_v = (-1/(1+u^2), u/(1+u^2) v)`,
`bm r_(u u) = (0, 0, (-2u)/(1+u^2)^2)`,
`bm r_(u v) = (1, 0, 0)`,
`bm r_(v v) = (0, 0, 0)`.
记 `|bm r_u ^^ bm r_v| = n`, `|E, F; F, G| = Delta`, 有
`E = v^2 + 1/(1+u^2)^2`, `F = u v`, `G = u^2 + 1`,
`L = 1/n (-2u v)/(1+u^2)^2`, `M = -1/n 1/(1+u^2)`, `N = 0`.
最终
`[a, b; c, d]`
`= 1/n 1/Delta [(-2 u v)/(1+u^2)^2, -1/(1+u^2); -1/(1+u^2), 0]`
`[u^2+1, -u v; -u v, v^2+1/(1+u^2)^2]`,
`H = 1/n 1/Delta ((-u v)/(1+u^2) + (u v)/(1+u^2)) = 0`.
Scherk's surface, 1835 `"e"^z = (cos x)/(cos y)`, 即 `z = ln cos x - ln cos y` `= int_y^x tan t dt`.
取参数 `bm r = (u, v, ln cos u - ln cos v)`, 则
`bm r_u = (1, 0, -tan u)`,
`bm r_v = (0, 1, tan v)`.
`bm r_u ^^ bm r_v = (tan u, -tan v, 1)`,
`bm r_(u u) = (0, 0, -sec^2 u)`,
`bm r_(u v) = (0, 0, 0)`
`bm r_(v v) = (0, 0, sec^2 v)`.
于是
`E = 1 + tan^2 u = sec^2 u`,
`F = -tan u tan v`,
`G = 1 + tan^2 v = sec^2 v`,
`L = -sec^2 u // n`, `M = 0`, `N = sec^2 v // n`
最终
`[a, b; c, d]`
`= 1/n 1/Delta [sec^2 u, -tan u tan v; -tan u tan v, sec^2 v]`
`[sec^2 v, 0; 0, -sec^2 u]`,
`H = 1/n 1/Delta(sec^2 u sec^2 v - sec^2 u sec^2 v) = 0`.