"Computer Graphics: Principles and Practice"
https://www.informit.com/store/computer-graphics-principles-...
Yeah, it is a steep price as many academia books, maybe you can find it on a library nearby, as its first edition was in 1982.
You are probably better off searching for old graphics programming books from the 90s. The code they have likely won't work, the the algorithms should be what you're looking for, and shouldn't be hard to adapt.
https://gist.github.com/ArminJo/8dc4e61847a693e99bdde919cc70...
It depends on your needs
* You can compute a rectangle by expanding a line purpendicular to its direction
The problem with this is you'll get gaps between 2 lines if they are supposed to be connected. You can solve that by trying to connect the corners if the rectangles. Once you do this though you're no longer drawing rectangles. You might have to make a simple triangle rasterizer. Or a scanline rasterizer
* You can "drag a brush". You compute a single line, then at each pixel, draw a sprite/circle/rectangle around that pixel. That's slow because you'll draw every pixel more than once but it will work and might be fast enough
This has the issue with the ends will be different unless your brush is round. If that's ok then it works.
All of these are something you can ask Gemini, ChatGPT, Claude, and they'll spit out an exmaple in the language of your choice.
Sadly, there are fewer people than ever on HN who care about deeply understanding either of these in the age of agents.
That said debugging graphics bugs has to be some of the hardest things you can do as they generally manifest as driver crash followed by VK_DEVICE_LOST error. Vibe debugging these inside a 60k vibecoded rust renderer is... just not possible.
Agents can get you the initial boilerplate for setting up most of the resources, but are completely clueless about subtle issues with synchronization, transitions, formats and so on.
Created an account just to say this
Anyway, thanks for the resource. I'm sure people would be interested in the parent page, "Graphics Programming Virtual Meetup" as well:
https://gpvm-website.netlify.app/
[0] https://lobste.rs/s/dppelv/what_are_you_doing_this_week