With the current replicated bugs, that updates my list to:

To Do:
  • When you're in horizontal mode, and focused on the graphscreen, and then press Apps and Select G3DC, the screen is a little bit messed up. CANNOT replicate. PT_: Can you give me steps to replicate this?
  • Horizontal splitscreen, 2D Y= menu, Zoom, ZSquare caused ERR:MEMORY. Fixed, but I don't remember what fixed it.
  • When going back from 3D to 2D mode, when Plot1 is On, and you just changed the color or the linestyle of an equation, the selected Plot1 is erased. Fixed by letting the OS re-draw the Plot1 ... Plot3 text itself. Dunno why I didn't do this in the first place.
  • Changing 2D function line color in 2D horizontal splitscreen mode makes the 3D re-render process begin (and also throw a memory error). Fixed
  • 2D errors make the "3D Mode" text disappear from Y=, because of reasons we already know about. Fixed
  • Going to 3D mode, then 2D mode, then changing the linestyle, then choosing CLEAR makes junk from the 3D menu appear behind the 2D menu. I swear that the minutiae I have to solve on this for the expected 3 USERS is so way not worth my time. Making this an OS-integrated App instead of just a simple little program was a huge mistake. Fixed by finding and reverse-engineering some absurd OS routine that colors in 2 rows on the LCD with some weird pattern consisting of supplied colors, and then also fills 2 rows in pixelShadow with a DIFFERENT weird pattern stored in the OS (2 columns in color A, then 6 columns in color B, if anyone cares).
  • 2D Horizontal mode, then go to the Y= menu, then press the left arrow to get to the linestyle menu, the go down and select CLEAR, it makes [mr womp womp's] calc go crazy. Can't replicate on hardware or emulator, so I guess, fixed?


Brand-new (and existing, unresolved) bugs! Very Happy Very Happy Very Happy
  • Errors in the Z= equations in fullscreen mode start an infinite loop, regardless of whether you choose 1:Quit or 2:Goto.
  • readroof2 reports that the 2:Goto hack for 3D plotting errors isn't working correctly. Not yet tested/replicated, and possibly intersects with the bug above.
  • In splitscreen mode, on the 3D Z= menu, pressing [up][down] (to the Plots line, then back to Z1=) makes the 3D plot be replaced with the 2D plot. Fixed by using the grfSChanged flag, set whenever the OS calls our Y= hook with a=0, to force the OS to redraw the graph instead of copying it from a buffer, which in turn our graph hook catches so our own graph can stay. Horrible, nested strands of lunacy.
I believe I solved all that; here's what's new:
  • Going past the bottom of the Zoom menu makes the graph reappear. Solved by adjusting how part of the menuHook works.
  • Splitscreen Z= equation errors cause infinite loop -> if any pending error, do not redisplay equations Fixed by adding a flag that gets tripped when an ERR occurs while computing Z= functions, and then reset when moving to the Graph context. Prevents infinite loop.
  • Still have noise behind Plot line in Y= menu after editing line color and choosing CLEAR (or going to a menu and canceling it). Corrected by using an existing line of 0x28 $FF bytes on page 3.
  • It appears that some interaction with Doors CSE's HomeRun feature disables the AppChangeHook Doors CSE 8.2 fixes this
Edit: Everything above appears to be fixed. I'll be experimenting further on my own hardware, but I'd greatly appreciate your help. If anyone could please help bug-test Open Beta 3, I'd be very grateful: https://www.cemetech.net/programs/index.php?mode=file&id=1416
New bug:
If you're at the graphscreen, and press either [ALPHA] + [F1] or [F2] or [F4], and then left or right, that menu's are disappearing.
You shouldn't be able to open those menus from the graphscreen at all. I can confirm that you can, though, so I'll try to figure out how that's happening. Smile I think that's the real bug here. Thanks!

Edit: PT_ discovered another two bugs, but I suspect they're ones I'm going to discount as not worth my time to solve (unless I can solve them both with one fix, which is possible).
1) Pressing Y=, going up to the Plot line, turning one on, then pressing [2nd][Y=] makes one of the little plot icons appear on a black background instead of a white background
2) Pressing [CLEAR] from that menu then fails to show any of the other plots that were enabled as enabled.

Edit #2: To put that a little more formally for myself:
  • Block ALPHA-F1 through ALPHA-F5 at the graphscreen (why does the OS even allow that in 2D mode, which it does?).
  • Pressing Y=, going up to the Plot line, turning one on, then pressing [2nd][Y=] makes one of the little plot icons appear on a black background instead of a white background
  • Pressing [CLEAR] from that menu then fails to show any of the other plots that were enabled as enabled.
And another a small bug: if you rotate the graph with [RIGHT] [UP] [DOWN] [LEFT], it will look like this:

The lines are a bit shifted. Dunno if that's how the calc works or a bug
I suspect that what you're showing there is imprecision in the fixed-point math routines. I use 8.8-bit fixed-point numbers for Graph3DC, and when you perform multiplication, division, and trig with so little precision, some inaccuracy is bound to creep in. If you kept repeating that key combination over and over, I suspect it would get increasingly imperfect.
This is definitely a bug Wink
When you have a black background, and press [TRACE] and after that, [2nd] [Y=], again 1 of the little plot icons have a black background.
Thank you so much for the tireless testing!
  • Block ALPHA-F1 through ALPHA-F5 at the graphscreen (why does the OS even allow that in 2D mode, which it does?). It appears that the OS has no way to block these menus without blocking all menus. Punt.
  • Pressing Y=, going up to the Plot line, turning one on, then pressing [2nd][Y=] makes one of the little plot icons appear on a black background instead of a white background. Fixed with judicious application of call ResetTextColors.
  • When you have a black background, and press [TRACE] and after that, [2nd] [Y=], again 1 of the little plot icons have a black background. Fixed with judicious application of call ResetTextColors.
  • Add Easter Egg. Easter Egg added in unused App space.
  • Pressing [CLEAR] from that menu then fails to show any of the other plots that were enabled as enabled. Resolved by using the textInverse flag instead of swapping foreground and background colors to draw items as enabled.
KermMartian wrote:
  • Add Easter Egg. Easter Egg added in unused App space.

WHAT!!!Shock I feel like I'm probably going to spend WAYYY too much time looking for this Laughing
This is also definitely a bug.
I have the graph Z1 = 1/X and High Resolution
First, set the window at [-8,8] by [-8,8] with both 27 steps. No problems appear.
But change the window to [-6,6] and [-6,6] while having 27 steps, some weird stuff happens. It doesn't even show the graph or whatever.
For X from -8 to 8, with 27 steps, min(abs(X)) = 0.296296, where 1/X = 1/0.296296 = 3.375
For X from -6 to 6, with 27 steps, min(abs(X)) = -6.8E-13 (because of computation precision issues), where 1/X = -1.470588E12 = really, really huge number. Graph3DC is choking on that massive number, which it can't discard as infinite because X was not quite zero.

Edit: Because I couldn't let something like this go unheeded, I have added exponent safety bounds to avoid this sort of problem. Graph3DC now computes the maximum exponent among Xmin, Xmax, Ymin, and Ymax. If the exponent of any Z value is more than 3 larger than that maximum exponent, then the Z value is discarded (the same way divide-by-zero points are discarded). For example, if the bounds are X from -6 to 6 and Y from -6 to 6, each of which has a maximum exponent of 0, then any Z value with an exponent larger than 3 (ie, Z>=10000) will be discarded. In action:
I thank you so much for creating this very awesome 3D grapher! I really enjoy it (although I find some bugs Razz), and I will absolute use it. Here are some (nice) graphs from me:




1) c*(X^3*Y-X*Y^3)
2) Unknown
3) X^2-Y^2
4) sqrt(X^2+Y^2)
5) round(X,0)
6) round(sqrt(X^2+Y^2),0)
7) Unknown


Now time for a 4D grapher? Wink
Whoa, those look really cool! Would you be so kind as to put the equations for each of those graphs with the graphs themselves? I'd like to share those.
Time for some new graphs:




Smile




sqrt(X^2+Y^2)->P

8 ) Pcos(P)
9) tan(P)
10) sqrt(1-P^2) ([-1,1], [-1,1])
11) sqrt(XY)
12) sqrt(XY)^2
13) abs(7-abs(P))
14) X/Y ([-13,13], [-13,13])
15) 2sin(P)^2+sin(P)
16) 0.64(X>2)+0.36(X>4) ([0,6], [0,6])
17) sin(2X)-cos(Y)
18 ) sin(XY)-cos(Y)
19) cos(XY)sin(Y)
20) Xcos(XY)
21) XY(X^2-Y^2)/(X^2+Y^2)
22) ~10/(X^2+Y^2+3)
23) 2Xe^(-X^2-Y^2)
24) 2XY/(X^2+Y^2)


Why do I have so much sqrt(X^2+Y^2)? That is just like a 2D graph rotated around the Z-axis. Very beautiful Smile
I've added in some images in my previous post Smile

Bug report: press twice [Y=] let's the text "Graph3DC 3D Grapher" disappear.

Future request: Make an extra menu in the [VARS] menu which access Z1 - Z2 or Z1 - Z5, like Y1 etc. is also accessible.
Would look like this:

Code:
VARS |Y-VARS| COLOR
1:Function...
2:Parametric...
3:Polar...
4:On/Off...
5:3D Graph...
PT_ wrote:
I've added in some images in my previous post Smile

Bug report: press twice [Y=] let's the text "Graph3DC 3D Grapher" disappear.

Future request: Make an extra menu in the [VARS] menu which access Z1 - Z2 or Z1 - Z5, like Y1 etc. is also accessible.
Would look like this:

Code:
VARS |Y-VARS| COLOR
1:Function...
2:Parametric...
3:Polar...
4:On/Off...
5:3D Graph...

What would these be used for? Using them like the Yχ VARS to do things like drawing the inverse function would surely require a massive amount of work, essentially resulting in Kerm rewriting the whole graphing part of the OS Razz I don't think these would be particularly useful if they don't actually serve a purpose other than being there... Also, this isn't particularly germane to the subject and I've mentioned this in a post before, but there should be an extra option in the VARS menu for greek letters Razz seems odd that they are there but you can't access them easily...
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 2 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement