Hi Mark,
this is not a dumb question and it is actually the all challenge of this drawings on an oscilloscope.
There are several factors that will impact the final results and are specific on how you generate the image (R2R dac, PWM with rc filter, fast DAC...) and also specific of the type of oscilloscope (analog vs digital), in some case not obvious like selected memory depth or intensity grading capability.
I see this was already discussed here
https://www.eevblog.com/forum/testgear/analog-vs-digital-x-y-mode/On my project the trick is to spend more time drawing the segments I want, moving one bit at a time along two end points and jumping to the next segment as fast as possible.
The last one is hardware dependent and the internal DACs of the ESP32 are fast enouth.
With the ESP32 I was not able to assign the values of the 2 DACs simultaneously (as you can do with an external DACs like the MCP4802), but I had to write the 2 values one at a time.
This will generate several unwanted points that will appear on the drawing.
See the attached picture where you can see all the points generated by the code displayed using an Excel chart.
This was really useful during debbugging
Mauro