export to tikz

This commit is contained in:
2022-02-18 17:21:55 -05:00
parent 28355777e1
commit 57fb407dea
3 changed files with 242 additions and 1 deletions

View File

@ -10,6 +10,8 @@ from polyomino import Square_element
from tools import remove_fromlist
import colors
# painter class
class Painter(Widget):
@ -451,6 +453,36 @@ class Painter(Widget):
ff.close()
self.draw()
# export to tikz
def export_tikz(self,file):
# abort if no particles
if len(self.particles)==0:
return
ff=open(file,"w")
# header
ff.write("\documentclass{standalone}\n")
ff.write("\n")
ff.write("\\usepackage[svgnames]{xcolor}\n")
ff.write("\\usepackage{tikz}\n")
ff.write("\\usepackage{jam}\n")
ff.write("\n")
ff.write("\\begin{document}\n")
ff.write("\\begin{tikzpicture}\n")
ff.write("\n")
# write position of particles
for particle in self.particles:
if type(particle)==Cross:
ff.write("\cross{"+colors.closest_color(particle.color,colors.xcolor_names)+"}")
ff.write("{{({:05.2f},{:05.2f})}};\n".format(particle.squares[0].pos.x-self.particles[0].squares[0].pos.x,particle.squares[0].pos.y-self.particles[0].squares[0].pos.y))
ff.write("\\end{tikzpicture}\n")
ff.write("\\end{document}\n")
ff.write("\n")
ff.close()
# set zoom level
def set_zoom(self,level):
Square_element.size=level*50