Victrid / splatplost

A software-based SplatPost plotter.
GNU General Public License v3.0
191 stars 18 forks source link

Mode to draw in zig-zag pattern #46

Open guighub opened 1 year ago

guighub commented 1 year ago

Hi, I've noticed that Splatplost seems to draw in a random pattern that I assume is meant to speed up the drawing process. However my image needs a lot of accuracy in order for it to work properly, and I've gotten a lot of misalignment with the current pattern. Can there be a drawing mode that draws a line of pixels across the screen, then moves down one pixel and draws the next line in the opposite direction?

zombie466851 commented 1 year ago

I have similar problems.

If my understanding is correct, the code will split the full image into pieces of 40px-by-40px, then plot each piece independently (as in line 88 of splatplost/generate_route.py). After finished one piece, there will be a "initializing process", moving the cursor to top-left (or bottom- or -right) corner. This process is carried out by function reset() defined in line 7 of splatplost/plot.py. The first possible reason could be that the time for "initializing process" is not long enough. It was 8000ms as defined in line 16 of splatplost/plot.py. I find it would be better if it is larger (I set it to 18000ms, thus it will take 36 instead of 16 seconds during resetting). This is also mentioned in #40 (coment).

But this is not fixed. I also tried to split my image manually (black dots show up only in 40x40 region) and plot 24 times without cleaning the canvas, I found there are still misalignment within each piece. This kind of misalignment seems to be random, because if I clean the broken piece and plot again the result could be correct. It's more likely to happen when a consecutive of many "right" (or "left", "up", "down") shows up. I suspect it's related to Bluetooth connection, since each run will give me slightly different result even using same order-file and under stable mode.

P.S. I was using Splatoon 3.