如何在python中使用带有path变量的svg.path绘制椭圆?

如何在python中使用带有path变量的svg.path绘制椭圆?,python,python-3.x,svg,path,svg-animate,Python,Python 3.x,Svg,Path,Svg Animate,我得到了这个列表,我必须从中创建字符串格式的Path变量 def trans_hatch_ellipse(dxf_entity, dwg) : tmp = dxf_entity.to_spline(False) ctrlPoints = tmp.control_points ctrlCnt = tmp.control_point_count strPath = "" for i in range(ctrlCnt()) :

我得到了这个列表,我必须从中创建字符串格式的Path变量

def trans_hatch_ellipse(dxf_entity, dwg) :
    tmp = dxf_entity.to_spline(False) 
    ctrlPoints = tmp.control_points
    ctrlCnt = tmp.control_point_count 
    strPath = "" 
    for i in range(ctrlCnt()) : 
        if i%4 == 0 : 
             strPath += "M " + str(ctrlPoints[i][0]) + " " +str(ctrlPoints[i][1]) + " C " 
        else : strPath += str(ctrlPoints[i][0]) + " " + str(ctrlPoints[i][1]) + " " 
    svg_entity = dwg.path(d = strPath, fill = "blue", stroke = "green", stroke_width = 1.0 / SCALE) 
    svg_entity.scale(SCALE, -SCALE) 
    del tmp 
    return svg_entity 

这是我用来画椭圆的,这里ctrlCnt()的值=9,ctrlPoints的值作为VertexArray给出

VertexArray = [
(2.0, 4.500000000000001, 0.0),
(0.9999999999999998, 4.500000000000001, 0.0),
(0.9999999999999996, 2.5, 0.0),
(0.9999999999999996, 0.49999999999999956, 0.0),
(1.9999999999999998, 0.4999999999999991, 0.0),
(3.0, 0.49999999999999867, 0.0),
(3.0000000000000004, 2.4999999999999996, 0.0),
(3.000000000000001, 4.5, 0.0),
(2.0000000000000004, 4.500000000000001, 0.0)
]
这是我从
.dxf
文件中读取的值,用于将其转换为
.svg
文件


使用这些坐标,我应该在Path变量中传递什么值来创建椭圆形状?

我不明白如何从这么多值创建椭圆?通常省略需要4个值-
x1、y1、x2、y2
centerX、centerY、r1、r2
。这个椭圆看起来怎么样?或者可能是有许多省略号的列表?但它们只有3个值-因此它可以创建onlu循环。你试了什么?你用的是什么模块?代码在哪里?定义trans_hatch_ellipse(dxf_entity,dwg):tmp=dxf_entity.to_样条线(False)ctrlPoints=tmp.control_points ctrlCnt=tmp.control_points\u count strPath=“”用于范围内的i(ctrlCnt()):如果i%4==0:strPath+=“M”+str(ctrlPoints[i][0])+”“+str(ctrlPoints[i][1])+“C”其他:strPath+=str(ctrlPoints[i][0])+“”+str(ctrlPoints[i][1])+“”svg_entity=dwg.path(d=strPath,fill=“blue”,stroke=“green”,stroke_width=1.0/SCALE)svg_entity.SCALE(SCALE,-SCALE)del tmp返回svg_entity这是我用来画椭圆的,这里是ctrlCnt()的值=9,ctrlPoints的值作为问题中的VertexArray给出。您应该对其提出疑问-它将更具可读性。更多的人会看到它,所以更多的人可以帮助你。您甚至可以创建最小的工作代码,我们可以运行这些代码来查看问题并测试想法。然后我们还可以看到您使用的模块,然后我们可以搜索该模块的文档,以了解更多有关在该模块中生成SVG的函数的信息。但若您将链接添加到模块,那个么它会更简单。你必须记住,我们看不到你的代码,我们看不到你的屏幕,我们无法在你的脑海中阅读-所以你必须添加所有有疑问的细节。