Thanks everyone for having a look at this! My goal is for people to spend more cumulative time reading this work than the time it took me to write it. This kind of writing doesn't spread and make money like the way a fantasy novel does... amen Steve? Haha anyway...
One thing I want to point out - specifically when doing graphics in QB64 - is the horrendously confusing set of screen coordinates. Mathematicians get used to the origin being in the middle of space, and the "up" and "right" directions carry you away in a positive direction (with down and left going negative). We like Cartesian systems.
QB64 is all f*cked up. The origin (0,0) is at the top-left corner of the screen, and moving down is considered increasing your distance from there. Just terrible. In vector language, this would mean the screen basis vectors are:
x_hat = <1,0>
y_hat = <0,-1>
The minus sign captures the backwards Y-motion. This is not enough though, because to do everything right, you need to propagate that minus sign into *everything*. Trig will look half-wrong because SIN() will open in the wrong direction. The right hand rule will be exactly wrong... its just a total mess. This is why its so hard for people to get right, hands down. (Especially trying to *use* QB64 to teach this. Just the wrong move to learn trigonometry on a backwards coordinate system.)
I suggest doing all of the calculations in regular Cartesian space and then converting to screen coordinates at the very end. For instance, on an 800*600 screen, do all calculations in the interval (-400,400) to (-300,300). Then, when it finally comes time to plot, just convert each X and Y:
x = x0 + 400
y = -y0 + 300
There you gain the minus sign back without ever having to mess around or reinvent the fundamentals.