In graphical programming there is a need for persistence of drawn objects. When a draw function writes to a graphical area the drawn image persists only until the next screen refresh action. Each time OnPaint is called the entire area is re-drawn thereby erasing what was there previously.
So, how do we make an image remain? The author made many web searches looking for the answer. Some websites alluded to "creating a bit map in memory for graphical output", but no website ever showed a complete solution for that problem. This program is a complete solution to that problem. The solution was worked on during free time during 5 years. Finally, this is a good solution.
Positives: The bare form is fully covered by two panels.
The size of the UI is established as a percent of screen size.
Negatives: The algorithm for computing the next (x,y) coordinates given the current (x,y) coordinates is mathematically "messy". The mathematical details tend to obscure the overall structure connecting the bitmap region in memory with the graphical panel. The new reader should try to see the global structure and not become enmeshed into the little details.
Enjoy your programming. Graphical programming is a marvelous art form. Be well.
The user interface of Archimedes 4.0 is self-adjusting. It sets is own width to be 92% of the width of the physical screen. Likewise, it sets its own height to be 92% of the height of the physical screen. Last tested by the author on August 13, 2023 using Xubuntu22.04.2.