Skip to main content

SF (FX-602P)

·

fx-602p
fx-602p

Description #

Calculates the Superformula for any angle Φ from Φ = 0 degree to Φ = 359 degrees.

\begin{equation} r(\phi) = \frac{1}{ \sqrt[n₁]{ \left| \frac{ \cos \left(\frac{m \phi}{4} \right) }{a} \right|^{n₂} + \left| \frac{ \sin \left(\frac{m \phi}{4} \right) }{b} \right|^{n₃} } } \end{equation}

Variable Effect
m edges of shape
n₁ resizes the spikes of the shape
n₂ defines shape
n₃ defines shape
a resize cos aspect of shape
b resize sin aspect of shape
Φ angle from 0 … 360 (0 … 2π)
r resulting distance from orgin

Note: If A and B are different then the shape might not form a closed loop.

Sample input #

Circle #

Using these values the Superformula should give a figure looking like a circle: \(a=1;\ b=1;\ n_1=2;\ n_2=2;\ n_3=2;
m=2 \).

SF (1,2,2,2)

How the code works #

For quick input the values for n₁, n₂, n₃ and m are pre-set with value 2 but can instead be overwritten if different.

Then in P0 the angle is set to 0 degree and is incremented by 1 at the ending of the program.

To obtain a full circle the Memory Register 06 (MR06) is set to the end value “359”. (In run mode MR06 is actually to enter to recall the memory register for register 06.)

Sample output #

The program generated coordinate pairs, as pasted and copied out of the printer simulation:

+X=    +Y=
 1.0000 0.0000
 1.0000 0.0175
 0.9994 0.0349
 0.9986 0.0523
 0.9976 0.0698
…
 0.0698 0.9976
 0.0523 0.9986
 0.0349 0.9994
 0.0175 1.0000
 0.0000 1.0000
 -0.0175 1.0000
 -0.0349 0.9994
 -0.0523 0.9986
 -0.0698 0.9976
 -0.0872 0.9962
…
 -0.9976 0.0698
 -0.9986 0.0523
 -0.9994 0.0349
 -1.0000 0.0175
 -1.0000 0.0000
 -1.0000 -0.0175
 -0.9994 -0.0349
 -0.9986 -0.0523
 -0.9976 -0.0698
 -0.9962 -0.0872
…
 -0.0872 -0.9962
 -0.0698 -0.9976
 -0.0523 -0.9986
 -0.0349 -0.9994
 -0.0175 -1.0000
 0.0000 -1.0000
 0.0175 -1.0000
 0.0349 -0.9994
 0.0523 -0.9986
 0.0698 -0.9976
…
 0.9945 -0.1045
 0.9962 -0.0872
 0.9976 -0.0698
 0.9986 -0.0523
 0.9994 -0.0349
 1.0000 -0.0175
End.

Interpretation #

Here the angle Φ runs through a full rotation if register MR06 is set to the value 360.

Program #

The program file contains the one programs P0 that looks like this:

SF2.pf #

PROGRAM LIST
File : SF2

*** P0
MAC 0 Min0F 360
Min06 “N1?” PAUSE 2
HLT Min01 “N2?”
PAUSE 2 HLT Min02 “N
3?” PAUSE 2 HLT
Min03 “M?” PAUSE 2
HLT Min04 1 Min08 1
Min09 “+X=    +Y=”
SAVE invEXE
LBL0
MR0F × MR04 ÷ 4 =
Min05 cos ÷ MR08 =
abs X^y MR02 = Min07
MR05 sin ÷ MR09 =
abs X^y MR03 = M+07
MR07 X^⅟y MR01 1/x =
P→R MR0F = FIX4 “ #”
X↔Y FIX4 “; #” SAVE
invEXE 1 M+0F MR06
x=F GOTO1
GOTO0
LBL1
“End.” SAVE invEXE
       ···127 steps
Download SF2.pf

Memory registers #

While using the same variable names as in the Wikipedia article, the memory registers are set as follows:

Memory Content
M01 n₁
M02 n₂
M03 n₃
M04 m
M05 \( \frac{m \phi}{4} \)
M06 360
M07 r
M08 a
M09 b
M0F Φ

To the developer #

The display cannot hold both coordinates at the same time that the values are scrolled through which is very time consuming.

I suggest you to code a switch in the simulator for allowing to turn off the display of to be printed values, while the display can show a counter value instead.

Author #

Michael Malien, Facebook