Refactor 2022 #29
I started down this Port/Refactor path figuring I would just focus on programming for a few weeks. That has turned into half a year, with no end in sight. (And now less time to work on it.)
With a little effort I could turn each of these diversion into different series. But when I start thinking about it, I immediately notice all of the programming things that are not yet done. Or worse, the program features that are broke or disabled while working on other fixes. The program runs just well enough to test new features.
So, please indulge me as I post these "experiments", and drop them into the "Refactor" bucket.
Refactor 2022 #18
In this variation the colors are not blended. Where they would otherwise overlap, one color is selected, rather than trying to blend them.
For the nerds out there, the bug was one of those kind of bugs. Internally I represent each color channel by a (continuous) floating point value between 0 and 1. The graphics hardware and the bitmap file format uses (discrete) byte values between 0 and 255. So one must multiply or divide by 256, depending on direction, for conversion. At one point I wrote 255 instead of 256. I looked at that number many times and it did not occur to me that it was wrong. The small difference is barely noticeable.
Refactor 2022 #17
Small tweaks to the parameters, and added a black stripe to the vertical palette.
I had put in several parameters to fine tune the results. While the results were close to my intent, the parameters did not work as I expected. Sometimes I liked the unintended results. But mostly it was frustration trying to get better control over the finer details.
Refactor 2022 #16
Here are multiple overlapping horizontal waves with slightly different frequency, amplitude, and phase. (Meaning they do not neatly line up.)
My code had a bug, and I spend way too much time hunting it down. In the process I generated many images trying to isolate the problem.
Actually there were two problems. One was an actual bug, the other probably should be called a prototype. I had an idea of what I wanted, wrote some code that I thought might work, but I was not sure. So I tried it to see what would happen. The result was close to, but not quite what I intended.