Polar curve grapher


Maybe you should make a POLAR-GRID background with pale gray circles around the origin instead of pale gray horizontal and vertical lines, and points labelled by (r,θ) instead of (x,y). (Using Snap! angles of course.)

Why though? All of the calculations are done assuming 0 degrees = East.

Ah, the joys of dealing with software with a foot in two different worlds.

Short answer: It doesn't matter what you do inside your program; what matters is that users of your program see what they expect.

Extended answer: In a case like this, it's not obvious what your users do expect, i.e., who your users are. If they're Snap!pers, they expect angles to work the way they work in Snap!. They may not even be old enough to have had an algebra course, let alone Algebra II, which is where they probably learn about analytic geometry and/or trig. If they're mathematicians, they may never have used Snap! (or Scratch) before. But if your program is ever going to have some form of interactivity, such as taking a function as input (i.e. a script that reports a value), then the user will be exposed to Snap! blocks, and may be exposed to POINT IN DIRECTION. My own decision, for my own Snap! projects, is to assume that sooner or later there will be a reason to be compatible with the rest of Snap!.

So, you might ask, why didn't we just get it right in the first place? You might well ask.

One pretty decent answer is that there is no "right." Counterclockwise angles are a result of the decision that the positive y axis faces up. But if Descartes had had access to current graphical display terminals, in which positive y faces downward, you might today think that clockwise angles are "right."

But the historically correct answer, as with so much else I'd do over if I could, is that when Jens and I were designing BYOB3, we both felt strongly that what we were doing was to make a proof of concept to convince the Scratch Team that they should adopt our ideas into mainline Scratch. As soon as it became clear that that wasn't going to happen, I started wanting to revisit a bunch of design choices, including this one. But I think Jens still felt in his heart of hearts that we were a kind of Scratch rather than a whole new language parented by Scratch, and in any case, by then we had users with expectations.

I still advocate that some June 14 we should declare a Flag Day and change all of the design decisions we ever got wrong, all at once. Then we could have angles CCW from East, along with eliminating empty-means-zero, making FIND FIRST report the index instead of the value (just to show that I don't think all the mistakes were made by other people), Scheme numeric tower as default, and so on.

How would they know what a polar curve is then?
(I learned a lot of my math online anyways)

They just routinely click on Share Your Projects things. :~)

So should I move it to #compsci:math?

No, it's a project, it's fine to share it here.

The embed isn't working for me. Can you give a link to the project?

It should work now.

If you don't want to run in the embed, you can click on the eye:

wow, that's really great. However, I can't seem to change the warp block.

What do you mean?

I'm clicking on the block, but it always stays on false

You have to set the variable in the editor

Oh, thanks.