Saturday, May 7, 2022

🪲Fix to DRAW and LINE

Back on April 25th and without posting about it, I uploaded a new version of BASIC Anywhere Machine that fixed a problem with the LINE statement, and did not realize until today that the fix to LINE had broken DRAW.

Yesterday, I uploaded a new version of BASIC Anywhere Machine to fix the problem I caused with DRAW, so that now both LINE and DRAW seem to be behaving correctly.

I need to take some time and thoroughly test everything having to do with graphics statements.


Details:

The problem fixed with LINE

A bug in wwwBASIC causes it to not apply last known Graphics Pen Position when a graphics statement calls for it.

Example: LINE - (x2,y2)

Normally, that is supposed to create a line starting at the last known pen position.  However, wwwBASIC will always start the line at x1 = 0 and y1 = 0.  (And: wwwBASIC does not attempt to remember pen position at the end of a LINE statement.)

BASIC Anywhere Machine fixes this issue.  (And:  BASIC Anywhere Machine does record the end coordinates of a LINE statement as last known graphics pen position as the potential starting point for the next line statement. )

The problem with DRAW

After the change to LINE behaviour described above, each starting pen movement within a chain of them in one DRAW comment was not starting at the end position of the previous movement.

I had not realized that LINE and DRAW were using some common code, and the change in that code to fix LINE was messing things up for DRAW.  So I've duplicated the common code, one version for LINE and what it needed, and one for DRAW as per the wwwBASIC version of that code.

Now all seems well.

No comments:

Post a Comment

🖥 Flower Tesselation: Testing DRAW and recursive SUB's

This BAM program inspired by Richard Russell's "Flower-like tesselation" BBC BASIC program posted on Facebook . Created in ord...