Рисование часов с питоном - PullRequest
0 голосов
/ 30 августа 2018

Я делаю программу на python для рисования часов в формате svg. Проблема в том, что я не получаю короткие строки, показывающие время в нужных местах. Что не так с моим кодом?

Вот как это выглядит в Inkscape:

Изображение часов в Inkscape

А вот и мой код:

import svgwrite
import math

#Definitions
filename = 'inkscape_007.svg'
WIDTH = 1000
HEIGHT = 1000

# Open the drawing

dwg = svgwrite.Drawing(filename)
dwg.viewbox(width=WIDTH, height=HEIGHT)

#Drawing code
circle = dwg.circle(center=(500, 500), r='250', fill='none',stroke='darkred', 
stroke_width=10)
dwg.add(circle)
dwg.save()

def x_coord(angle,radius,center_x):
    x = radius * math.cos(angle) + center_x
    x = round(x)
    return x

def y_coord(angle,radius,center_y):
    y = radius * math.sin(angle) + center_y
    y = round(y)
   return y

ang = 0
line = dwg.line(start=(x_coord(ang,250,500),y_coord(ang,250,500)), end= 
(x_coord(ang,220,500),y_coord(ang,220,500)), stroke='black', stroke_width=10)
dwg.add(line)
dwg.save()

ang = 90
line = dwg.line(start=(x_coord(ang,250,500),y_coord(ang,250,500)), end= 
(x_coord(ang,220,500),y_coord(ang,220,500)), stroke='black', stroke_width=10)
dwg.add(line)
dwg.save()

ang = 180
line = dwg.line(start=(x_coord(ang,250,500),y_coord(ang,250,500)), end= 
(x_coord(ang,220,500),y_coord(ang,220,500)), stroke='black', stroke_width=10)
dwg.add(line)
dwg.save()

ang = 360
line = dwg.line(start=(x_coord(ang,250,500),y_coord(ang,250,500)), end= 
(x_coord(ang,220,500),y_coord(ang,220,500)), stroke='black', stroke_width=10)
dwg.add(line)
dwg.save()

#Save the file
dwg.save()
...