Beta test: Complex number explorer

One extension i would enjoy is the possiblity to draw horizontal (vertical) segments of n (= user defined) points equally spaced between 2 points.

The ability to pan and zoom directly would be great. Pan with 2 fingers move, zoom with 2 finger pinch/zoom?

About moebius transforms:
http://www.youtube.com/watch?v=JX3VmDgiFnY

I finally got “Solving Riemann hypothesis” during the export! Yay.

New build now on TestFlight.

I’ve focussed on making it two-pane so that you can keep track of what the various options are (and change them). I’d like to know if this makes it easier to use - if so, I’ll add a bit more polish.

Ditto with the explanations.

New features include:

  1. Pan-and-zoom (use two fingers).
  2. “Vector” mode. I hope I’ve understood Jmv38’s comment on that.
  3. Help texts (could do with a little proof-reading, I’m sure!).

pan and zoom: excellent. Except on start up: the zoom is too big: one does not understand where he is. We should start with the same zoom at before: unit circle is 1/4 of the plane.
vector mode: this is exactly what i meant. Much easier to see what i am doing now. On problem: if we are not in ‘polar’ mode, and do a multiplication, we have projection on the x and y axis of 2 of the vectors showing: this is confusing. i have to switch to polar to remove these projections.
help text and 2 panes: i think it is globally better than before. Could still be polished though (but you already noticed).
i have a problem with selecting an option: seems i systématically select the option below. Are your sure the touch is centered on each button? looks like it is centered between buttons to me.

@Jmv38:

vector mode: this is exactly what i meant. Much easier to see what i am doing now. On problem: if we are not in ‘polar’ mode, and do a multiplication, we have projection on the x and y axis of 2 of the vectors showing: this is confusing. i have to switch to polar to remove these projections.

So do you think that whether or not to show the projections should depend on the operation being applied? I guess there are different lines that make sense depending on which operation is being applied. For addition then the parallelogram makes sense, not sure for multiplication, for roots it could draw the n-gon. I’ll think about that.

i have a problem with selecting an option: seems i systématically select the option below. Are your sure the touch is centered on each button? looks like it is centered between buttons to me.

That’s something that’s been in existence with my Menu class but that I’ve never had the incentive to track down until now! I think that there are two effects here. One is that the split occurs at the baseline of the text, which is higher than one would expect. The other is that if you are on the borderline and move slightly as you raise your finger then it will take the final position as the one you select which wasn’t the last one highlighted. I’ve dealt with both of these now and will be interested to hear if this fixes it for you.

@Jmv38 I think I’ve fixed the menu bug in the latest build, and put in more drawings for the different operations - please let me know if you think they “fit”.

When you say that you think the scale should be smaller, do you mean that the visible edges should be at ‘4’ (I think they’re currently at ‘2’)?

@West There’s a ‘j’ option now in the customise menu!

Hi @andrew. Havent checked the new build yet.
‘scale’: i mean when i first stated the last build, the edges were, say, ‘1/3’. So the unit circle was not even visible. I think it was ok afterwards, so maybe it is a ‘first run’ thing, but should be fixed anyway for everyone has to go hrough a first time run…

@Jmv38 That’s odd. In the initial scale the circle should have diameter half of the visible region. That’s what I get on a fresh install. Try deleting it before installing the new build and see what you get.

I had again the pb with the new build. But deleting the app and reinstall then it was ok.
The touch of buttun is different but still not completely natural. My first tries were odd: the menu diappered leaving only the menu title in the middle?? Happend when the touch slides a little bit. I’ve got used to it now and it doesnt happen again.
I tried the demo and… Codea error! error: [string “-- Complex plane class…”]:523: attempt to call field ‘op’ (a string value).
Weird to see codea panel poping up from an app.
Vectors are ok now (for me).

Like the improvements. A couple more requests 1)a reset view, I accidentally pinch zoomed and can’t get back, 2) option to display angles in degrees or radians 3) the option to set precision on the displayed numbers 4)the option to change font, font size and font decoration (I personally dislike italics in brackets)

Great job though - keep up the good work

@West Now that I have the pinch-and-zoom, I think that having the separate scale in the main menu is silly, and that can free up space for a “reset shift and scale” button. Good idea.

Degrees, degrees?!?!?! You can’t do complex numbers with degrees.

Seriously, do engineers use degrees when working with complex numbers? I wouldn’t have thought it possible.

The precision is a good idea. That’s handled internally by a constant so it’ll be easy to expose. Font might take a bit longer. I presume that you mean just the font of the numbers (not the menu font and help text font). Actually, what if I just set it upright? Numbers themselves should be upright, and one can argue that i (or j) should also be upright as it is a specific number and not a variable (there’s some ISO standard that says so and which is universally ignored by mathematicians).

As I said I liked the app, I don’t have any major issues with the look

What I would have liked:

  1. the possibility to draw proper curves (or maybe I did miss it)
  2. a larger list of functions (moebius transforms)
  3. regarding number 2 some sort of investigation of Riemann mapping theorem (but perhaps that’s not the target)

@Andrew_Stacey electrical engineers use complex numbers for analysis of AC circuits. Often voltages and currents are supplied in polar form (Magnitude at some angle in degrees, but with an implied conversion to radians - I know!). Impedance consists of Real components (contributed by resistance) and imaginary components (contributed by inductors and capacitors). The same principles used in DC analysis (such as Ohm’s Law, Kirchoffs laws, Thevenin’s theory, etc) are applicable in AC circuits, but the currents, voltages and resistances are complex.

If you’re interested, this site http://www.electronics-tutorials.ws/accircuits/complex-numbers.html or these slides at http://www.personal.rdg.ac.uk/~stsgrimb/teaching/ac_circuits.pdf seems to give a reasonable introduction to the area.

Bridging from the concepts from mathematics (taught by our Maths department) across to the practical use in Electrical Engineering is an area which traditionally has caused grief for some of our students.

Your app (or something like it) looks like the sort of thing which could help bridge this gap.

@West Degrees are in.

@corneliuhoffman Hmm. How would you go about getting someone to input a Möbius transformation? If using z → (a z + b)/(c z + d) then I’d need four control points. If using the triple-point transitivity, I’d need three (and with the possibility that one might be infinite). With regard to curves then there’s the complication of figuring out where they map to under the transformation. I could do piecewise-linear of both input and computed, I guess, and apply the transformation to the endpoints. Then it would simply be a different rendering style: lines instead of points.

You’re right that the Riemann mapping theorem is a bit further than I intended. Not sure how you’d investigate it using this either.

well I was thinking that the Moebius transf would be predefined to start with (say a translation) and then you would get the option of manipulating the (4 or 3 ) points. i was thinking that probably the choice of 4 points would be a bit better since it is quite easy to get the infinity into the picture.
As for RMT, my take was somewhat related to part 2, I was thinking of baby versions, you could look for example at transformation of the unit circle under moebius transforms or maps to polygons.
see this for example
http://www.jimrolf.com/java.htm

I’ll keep Möbius transforms in mind for further development …

I feel I’m getting to the point of diminishing returns with this and am minded to upload it to the App Store soon. So my main question with the latest beta is: is there anything that screams out “Don’t upload it until you’ve done XYZ!!!”?

The only thing I would suggest is an “about” or “contact me” if you are releasing to the general public so people can contact you (although I guess you maybe able to do this through the App Store?)

Double post :-/