几何变换计算器
输入一个点集或多边形的顶点,选择最多四个变换——平移、反射、旋转或位似——即可得到每个点的像、每一步以及整个序列的矩阵,并查看变换前后图形的对比图。30°、45° 和 90° 等标准角保持精确值。免费,无需注册,数据不会离开您的浏览器。
三个或更多点会按输入顺序连成多边形。
变换,按顺序依次应用
整数、小数或分数,例如 3/4。
结果
1
距离乘以
1
面积因子(行列式)
保持不变
朝向
3 → 3
多边形面积
各点的像
| 点 | 原图 | 像 |
|---|---|---|
| A → A′ | (1, 1) | (−1, 1) |
| B → B′ | (4, 1) | (−1, 4) |
| C → C′ | (1, 3) | (−3, 1) |
变换矩阵
每一步都是作用于 (x, y, 1) 的 3 × 3 矩阵。矩阵从右向左相乘,因此第一步位于最右侧的因子。
| 0 | −1 | 0 |
| 1 | 0 | 0 |
| 0 | 0 | 1 |
变换前后
蓝色为原图,橙色为最终的像,虚线轮廓为此前每一步之后的图形,绿色标出反射直线或中心。
如何使用几何变换计算器
- 1. 输入各点。 每行输入一组 x, y,最多十二组。三个或更多点会按输入顺序连成多边形。
- 2. 选择变换。 每一步都可以是平移、反射、旋转或位似,并有各自的设置:平移量、反射直线、旋转角度与中心,或比例因子与中心。
- 3. 需要时组合多个步骤。 最多可添加四个步骤,按所示顺序依次应用。图中的虚线轮廓显示此前每一步之后的图形。
- 4. 查看像、矩阵和图形。 表格列出每个点及其像;矩阵以数字形式表示变换;图形把原图叠加在结果之上。
四种刚性变换与相似变换
| 变换 | (x, y) 的规则 | 保持不变的量 |
|---|---|---|
| 沿 (a, b) 平移 | (x + a, y + b) | 大小、形状与方向 |
| 关于 x 轴反射 | (x, −y) | 大小与形状;朝向反转 |
| 关于 y 轴反射 | (−x, y) | 大小与形状;朝向反转 |
| 关于 y = x 反射 | (y, x) | 大小与形状;朝向反转 |
| 绕原点旋转 θ | (x cos θ − y sin θ, x sin θ + y cos θ) | 大小、形状与朝向 |
| 以原点为中心、比例 k 位似 | (kx, ky) | 形状;长度乘以 |k|,面积乘以 k² |
绕其他中心或直线的变换由这些变换构成:先把中心移到原点,完成变换,再移回。
变换矩阵
平移不是线性变换,因此 2 × 2 矩阵无法表示它。解决办法是齐次坐标:把点写成 (x, y, 1),并使用 3 × 3 矩阵。沿 (a, b) 平移对应的矩阵各行分别为 (1, 0, a)、(0, 1, b)、(0, 0, 1);旋转 θ 对应 (cos θ, −sin θ, 0)、(sin θ, cos θ, 0)、(0, 0, 1);比例为 k 的位似对应 (k, 0, 0)、(0, k, 0)、(0, 0, 1)。由于每一步都是一个矩阵,整个变换序列也就是一个矩阵:各步矩阵的乘积,第一步位于最右侧的因子。绕中心 (c, d) 的旋转为 T(c, d) · R · T(−c, −d)。
矩阵左上角 2 × 2 部分的行列式告诉您面积如何变化,以及图形是否被镜像。行列式为 1 时,面积和朝向都保持不变(平移和旋转);为 −1 时,面积保持不变,但朝向翻转(单次反射);k² 则表示面积按比例因子的平方缩放。计算器会连同行列式一起报告距离被乘以的倍数。
示例
从三角形 A(1, 1)、B(4, 1)、C(1, 3) 开始,其面积为 3。
- 绕原点逆时针旋转 90°。 (x, y) 变为 (−y, x),因此 A′(−1, 1)、B′(−1, 4)、C′(−3, 1)。矩阵为 (0, −1, 0)、(1, 0, 0)、(0, 0, 1),行列式为 1。
- 关于 y 轴反射。 (x, y) 变为 (−x, y):A′(−1, 1)、B′(−4, 1)、C′(−1, 3)。行列式为 −1,因此朝向被反转。
- 沿 (3, −2) 平移。 A′(4, −1)、B′(7, −1)、C′(4, 1)。
- 以原点为中心、比例 k = 2 做位似。 A′(2, 2)、B′(8, 2)、C′(2, 6)。长度加倍,面积从 3 变为 12 = 3 × 2²。
- 绕原点旋转 45°。 点 (1, 0) 变为 (√2/2, √2/2),以精确形式保留。
- 顺序很重要。 取点 (1, 0)。先旋转 90° 再沿 (1, 0) 平移:(1, 0) → (0, 1) → (1, 1)。先平移再旋转:(1, 0) → (2, 0) → (0, 2)。
关于其他直线的反射
对于直线 y = mx + b,计算器使用关于 y = mx 的反射矩阵 (1 − m², 2m; 2m, m² − 1) 除以 1 + m²,并在前后各加一次平移 b 进行包装。所有元素都是有理数,因此结果是精确的。竖直直线 x = c 会把 x 变为 2c − x。例如,以 y = x + 2 为轴反射原点得到 (−2, 2),因为该直线是连接两点的线段的垂直平分线。
常见问题
- 什么是几何变换?
- 把平面上每一点移到新位置的规则。平移是滑动,反射是关于一条直线翻转,旋转是绕一个中心转动,位似是以一个中心为基准改变大小。前三者是保持距离不变的刚性运动;位似保持形状,但会改变大小。
- 如何将点绕原点旋转 90 度?
- 逆时针时,(x, y) 变为 (−y, x);顺时针时,变为 (y, −x)。对于 (3, 2),逆时针得到 (−2, 3),顺时针得到 (2, −3)。180° 旋转把 (x, y) 变为 (−x, −y)。
- 如何绕原点以外的点旋转?
- 先从该点减去中心,绕原点旋转所得结果,再把中心加回去。计算器通过矩阵 T(c) · R · T(−c) 为您完成这一步,以指定中心做位似也是如此。
- 位似会怎样改变面积?
- 长度乘以 |k|,面积乘以 k²。比例因子为 3 时,图形宽度变为三倍,面积变为九倍。负的 k 还会使图形绕中心翻转,这等同于先以 |k| 做位似,再旋转 180°。
- 变换的顺序重要吗?
- 通常重要。矩阵乘法不满足交换律,因此先旋转再平移与先平移再旋转的结果不同,如上面的例子所示。绕同一中心的两次旋转,或两次平移,则可以交换顺序。
- 如何关于直线 y = x 做反射?
- 交换坐标:(x, y) 变为 (y, x)。关于 y = −x 反射则把 (x, y) 变为 (−y, −x)。对于其他直线 y = mx + b,在反射步骤中选择该选项并输入 m 和 b 即可。