@REDkiy

Чем программно рисовать в Python 3?

Нужно рисовать несложные чертежи, скорее даже схемы или наброски. Процесс представляю себе примерно так - передаём скрипту в качестве параметров длину и ширину в миллиметрах. Скрипт отрисовывает прямоугольник, расставляет размеры и генерирует SVG, может быть PNG файл. Лучше SVG. Картинки закидывается в папку и оттуда подтягивается в документ.

Есть какие-то библиотеки или биндинги для библиотек под Python 3 с помощью которых можно рисовать?
Я только в начале пути, может быть кто-то решал подобную задачу, подкиньте идей. Спасибо!
  • Вопрос задан
  • 2305 просмотров
Пригласить эксперта
Ответы на вопрос 3
@rennorb
Если схемы очень простые, то можно даже как текст генерировать:
def svg(*items):
	ret='<svg>'
	for i in items:
		ret+=i
	return ret+'</svg>'

def rect(x, y, w, h, fill):
	return '<rect x="{}" y="{}" width="{}" height="{}" fill="{}"/>'.format(x, y, w, h, fill)

def circ(x, y, r, fill='black'):
	return '<circle cx="{}" cy="{}" r="{}" fill="{}"/>'.format(x, y, r, fill)

def group(*items, fill='', stroke='', transform=''):
	ret = '<g fill="{}" stroke="{}" transform="{}">'
	for i in items:
		ret+=i
	ret+='</g>'
	return ret.format(fill, stroke, transform)

svg(group(circ(120, 120, 40, 'red'), rect(80, 80, 25, 60, 'green'), fill='black', transform='rotate(30)'))
# => '<svg><g fill="black" stroke="" transform="rotate(30)"><circle cx="120" cy="120" r="40" fill="red"/><rect x="80" y="80" width="25" height="60" fill="green"/></g></svg>'


5a68f9413200d303924900.png

Почитайте тут как выглядит svg внутри.
Ответ написан
@REDkiy Автор вопроса
Что скажете про pycairo? Может быть у кого-то был опыт использования?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы