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

如何获取经过变换的matplotlib Polygon的xy属性值

获取Matplotlib变换后多边形的顶点坐标

Matplotlib中调用set_transform()只会设置绘制时的坐标变换规则,不会修改多边形的原始顶点数据(也就是poly.xy属性始终存储初始坐标)。要获取变换后的顶点坐标,需要手动用变换对象对原始xy数据进行转换。

具体方法

1. 获取数据坐标空间中变换后的顶点

如果自定义变换(比如示例中的平移)是在数据坐标空间内进行的,直接用自定义变换对象的transform()方法处理原始xy:

# 用示例中的平移变换t处理原始坐标
transformed_xy_data = t.transform(poly.xy)
print(transformed_xy_data)

2. 获取屏幕坐标(像素)中变换后的顶点

如果需要的是最终绘制在画布上的屏幕像素坐标,使用多边形当前的完整变换对象(自定义变换+轴数据变换):

# 获取多边形的完整变换
full_transform = poly.get_transform()
# 转换原始坐标为屏幕坐标
transformed_xy_screen = full_transform.transform(poly.xy)
print(transformed_xy_screen)

3. 示例执行结果

结合你的代码,执行数据坐标变换后会得到:

array([[ 26.56, -30.63],
       [ 32.36,  -5.01],
       [ 26.56, -30.63]])

关键说明

Matplotlib的变换系统是非破坏性的:原始数据始终保留,变换仅在渲染阶段生效。因此必须通过变换对象主动转换原始坐标,才能得到变换后的结果。

内容的提问来源于stack exchange,提问作者albar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:52:48