You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以指定点为原点缩放点?Python缩放操作异常排查与修正

以非原点为基准缩放点的核心原理

要以特定中心点而非原点(0,0)缩放一个点,本质是做三次坐标变换,步骤非常明确:

  • 第一步:平移坐标到临时原点——用目标点的坐标减去中心点坐标,得到目标点相对于中心点的相对位置,此时中心点就相当于临时的原点。
  • 第二步:缩放相对坐标——用缩放因子乘以第一步得到的相对坐标,完成缩放操作。
  • 第三步:平移回原坐标系——把缩放后的相对坐标加上中心点坐标,得到最终的缩放后点。
你的Python代码问题修正

咱们直接结合你的参数来写正确实现,顺便排查你可能踩的坑:

首先先明确你的参数:

# 给定的参数
center_point = [89, 121]  # 中心点(红点)
e = [70, 140]  # 需要缩放的点(蓝线对应点)
sf_list = [0.5, 0.75, 0.85, 1, 1.25, 1.5, 1.75, 2]  # 缩放因子列表

正确的缩放计算代码如下:

scaled_points = []
for sf in sf_list:
    # 1. 计算点e相对于中心点的坐标(把中心点移到临时原点)
    rel_x = e[0] - center_point[0]
    rel_y = e[1] - center_point[1]
    
    # 2. 对相对坐标应用缩放因子
    scaled_rel_x = rel_x * sf
    scaled_rel_y = rel_y * sf
    
    # 3. 平移回原坐标系,得到最终点
    final_x = scaled_rel_x + center_point[0]
    final_y = scaled_rel_y + center_point[1]
    
    scaled_points.append([final_x, final_y])

你之前出错的大概率原因:

你可以对照自己的代码排查这几个常见问题:

  • 平移方向搞反:比如用center_point[0] - e[0]计算相对坐标,导致后续缩放方向完全错误;
  • 平移回原坐标系时操作错误:比如用scaled_rel_x - center_point[0],而不是加上;
  • 漏处理某个坐标轴:比如只缩放了x坐标,没处理y坐标;
  • 顺序颠倒:先缩放原坐标再平移,这会导致缩放基准还是原点,完全偏离中心点。

你可以用sf=1做测试:此时缩放后的点应该和原点e完全一致,这是验证逻辑正确的好方法。

内容的提问来源于stack exchange,提问作者S.EB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:51:16