Draw the Solution
00:00
Drawing the Solution. The last missing method in the SVGRenderer
class is one that draws a solution as a line ending with an arrow marker.
00:39 You transform the squares of the solution to get their corresponding pixel coordinates. Notice that you add an extra offset to center the solution’s line vertically and horizontally in each square,
01:07
the marker-end
SVG attribute refers to the SVG object identified as #arrow
, which you defined earlier. At this point, you can print the resulting SVG in the console or save its XML content to a local file. You’ll make use of the maze you saved earlier in the course here, so ensure that your REPL session starts at the same level as the pyproject.toml
file to ensure that the relative import of the mini_maze
works correctly.
01:37
First, you import the mini_maze
, which was created earlier, and then Path
from pathlib
to make creation of the file smpler. The Solution
and SVGRenderer
are imported from the maze_solver
project …
01:58
and then a solution is manually created. An SVGRenderer
object is created with the maze and solution as arguments. And finally, the file is written to disk.
02:28
This will save the rendered maze and your manually built solution in a file named maze.svg
, which you can open using an external editor or viewer.
02:41 You should see something similar to what’s seen on-screen, but bear in mind that the rendering will look different depending on how you open it. On-screen, you can see the difference when opening in Firefox and Inkscape, and which one you prefer will be personal choice.
02:59
What is beyond debate is that it would be much more convenient to have a .preview()
method on the SVG
instance that you could call directly to have the image displayed to you.
03:08 You’ll implement that method in the next section of the course.
Become a Member to join the conversation.