获取圆 x 和 y 中心

Get circles x and y center

我的目标是从 dxf 文件中获取所有圈子,其中包含 3 个信息,例如:circumference, X center, Y center。到目前为止,我能够得到周长。我怎样才能得到Y & X?这是我当前的代码:

import sys
import ezdxf

doc = ezdxf.readfile("File.dxf")
msp = doc.modelspace()

for e in msp:    
    if e.dxftype() == 'CIRCLE':
            dc = 2 * math.pi * e.dxf.radius
            print('circumference: ' + str(dc))

查看文档,Circle 似乎有一个 'center' 属性,所以

e.center

应该给你坐标

https://ezdxf.readthedocs.io/en/stable/dxfentities/circle.html

圆心是 e.dxf.center 作为对象坐标系 (OCS) 中的 Vec3 对象。如果挤压向量为 (0, 0, 1),则 OCS 就是 WCS,对于 2D 实体,大多数情况下都是这种情况。

有时镜像的二维实体有一个反向的挤压向量(0, 0, -1),在这种情况下,需要将OCS坐标转换为WCS坐标:

for e in msp.query("CIRCLE"):
    ocs = e.ocs()
    wcs_center = ocs.to_wcs(e.dxf.center)
    x = wcs_center.x
    y = wcs_center.y