我正在尝试旋转文本,该部分工作正常,但我希望它是右对齐而不是左对齐。换句话说,我希望文本在我计算的圆的周长上结束,而不是开始。这段代码画了一个圆圈,上面有 365 个刻度,每 7 天有一个较长的刻度,每个第 7 天的数字都刻在刻度标记的圆圈内。
我的代码是这样做的:
我想要的是这样的:
import math
import svgwrite
radius_inner = 200
radius_width = 40
radius_outer = radius_inner + radius_width
week_line_start = 10
day_line_start = 16
line_end = 10
day_font_size=15
days = 365
dwg = svgwrite.Drawing('YearWheel.svg')
for i in range(0,days):
angle = (math.pi*2 / days) * i
if i % 7 == 0:
startr = week_line_start
else:
startr = day_line_start
startx = math.sin(angle) * (radius_inner + startr)
endx = math.sin(angle) * (radius_outer - line_end)
starty = -math.cos(angle) * (radius_inner + startr)
endy = -math.cos(angle) * (radius_outer - line_end)
print("({},{}),({},{})".format(startx,starty,endx,endy))
dwg.add(dwg.line((startx,starty), (endx,endy), stroke=svgwrite.rgb(10, 10, 16, '%')))
if i > 0 and i % 7 == 0:
rot = 'rotate({},{}, {})'.format(math.degrees(angle)-90,startx,starty)
dwg.add(dwg.text("{}".format(i), insert=(startx,starty), transform=rot, font_size='{}px'.format(day_font_size)))
dwg.save()
我尝试添加,style="text-align:end"
到text()
调用中(在 stackoverflow 的其他地方看到了),但这没有区别。
理想情况下,我希望数字也与线条“垂直”居中。
我最初的帖子报告说样式元素导致了错误。这是由于构造函数中包含我的代码的一个, profile='tiny'
版本svgwrite.Drawing
。