图片的旋转和缩放 | 复数乘法的实际应用 | 数学科普

📅 2026/7/26 19:51:07 👁️ 阅读次数 📝 编程学习
图片的旋转和缩放 | 复数乘法的实际应用 | 数学科普

前情概要

教学演示

🌀 图片 × 复数 = 旋转 + 缩放

交互式教学演示:把每个像素坐标 $(x, y)$ 看作复数 $z = x + yi$,乘以复数 $c = a + bi$,实时观察变换效果

$z \times c = (x + yi) \times (a + bi) = (xa - yb) + (xb + ya)i$
几何意义:旋转 $|c|$ 的幅角角度,缩放 $|c|$ 的模长倍数  |  极坐标:$c = |c| \cdot e^{i\theta}$

📷原始图像[每个像素 $=$ 一个复数 $z$ $=$ $x$ $+$ $yi$]

✨变换后图像[每个像素 $\times$ 复数 $c$ $=$ $a$ $+$ $bi$]

复数 $c$
0.71 + 0.71i
极坐标形式
$1.00 · e^{i·45.0°}$
模长 $|c|$(缩放倍数)
1.00
幅角 $\arg(c)$(旋转角度)
45.0°
0.71
0.71
当前状态:复数 $c$ $=$ $0.71$ $+$ $0.71i$,模长 $|c|$ $\approx$ 1.00,幅角 $\arg(c)$ $\approx$ 45°。
每个像素点绕图像中心逆时针旋转约 45°,缩放倍数约 1.00 倍(基本不变形)。
试试拖动滑块或点击预设按钮,观察不同复数带来的旋转和缩放效果!

📐 为什么复数乘法 = 旋转 + 缩放?

把像素坐标 $(x, y)$ 看作复数 $z$ $=$ $x$ $+$ $yi$,乘以另一个复数 $c$ $=$ $a$ $+$ $bi$:

$z$ $\times$ $c$ $=$ $(x + yi)$ $\times$ $(a + bi)$ $=$ $\mathbf{(xa - yb)}$ $+$ $\mathbf{(xb + ya)}$$i$

新坐标的实部 $xa-yb$ 和虚部 $xb+ya$ 正好对应二维旋转矩阵的运算!

极坐标看更直观:若 $c$ $=$ $|c|$ $\cdot$ $e^{i\theta}$,则:

  • 模长相乘 $|z$ $\times$ $c|$ $=$ $|z|$ $\cdot$ $|c|$ → 缩放 $|c|$ 倍
  • 幅角相加 $\arg(z\times c)$ $=$ $\arg(z)$ $+$ $\theta$ → 旋转 $\theta$ 角度

所以复数乘法天然携带旋转基因——这是欧拉公式 $e^{i\theta}$ $=$ $\cos\theta$ $+$ $i\sin\theta$ 的馈赠。

🎮 预设按钮对照表

按钮 复数 $c$ 模长 $|c|$ 幅角 效果
$\times$1$1 + 0i$1.00完全不变
$\times$i$0 + 1i$1.0090°逆时针转 90°
$\times$(−1)$-1 + 0i$1.00180°上下左右全颠倒
$\times$(−i)$0 - 1i$1.00−90°顺时针转 90°
$\times$$e^{i\frac{\pi}{4}}$$0.707$ $+$ $0.707i$1.0045°转 45°,大小不变
$\times$1.5$1.5 + 0i$1.50放大 1.5 倍
$\times$$e^{i\frac{\pi}{3}}$$0.5 + 0.866i$1.0060°转 60°,大小不变
$\times$$e^{i\frac{3\pi}{4}}$$-0.707 + 0.707i$1.00135°转 135°,大小不变

💡 关键观察:只要 $a^2$ $+$ $b^2$ $=$ $1$(模长为 $1$),就只有纯旋转,不会缩放变形。

💡 这跟「图片处理」有什么关系?

网上说的"图片乘以复数",通常指频域操作

  1. 图片做 傅里叶变换 → 每个频率分量变成复数(有幅度、有相位)
  2. 在频域乘一个复数 → 改变该频率分量的相位和幅度
  3. 逆变换回图像 → 整幅图就变了(位移、模糊、锐化等效果)

本质上是同一套数学:复数乘法 = 旋转(改相位)+ 缩放(改幅度)

🎯 学生动手练习

  1. 连续旋转:把实部 $a$ 拖到 $0$,虚部 $b$ 从 $−2$ 慢慢拖到 $2$,观察图像如何连续旋转
  2. 消失术:把 $a$ 和 $b$ 都调到 $0$,图像消失(缩放到 $0$)
  3. 纯旋转:让 $a^2+b^2=1$(比如 $a=0.6$ , $b=0.8$),只有旋转,没有变形
  4. 自动演示:点击「自动旋转演示」,看图像绕中心完整转一圈
  5. 组合效果:尝试 $a=1.2$ , $b=0.5$,同时感受旋转 + 放大