2D Curves
Parametrisation of curve :
* closed curve can be parametrised by angle : c = f(angle)
* ray ( half-line) can be parametrised by radius : c = f(radius)
Rasterisarion of curve :
* closed curve ( circle or cardioid)
* ray ( half-line)
Scale :
* linear
* nonlinear
Rasterisation of radius R using linear scale :
/* code in Maxima CAS */
R_Max:4;
R_Min:1.1;
for R:R_Max step -0.5 thru R_Min do disp(R);
/* Maxima allows non-integer values in for statement */
(%o1) 4
(%o2) 1.1
4
3.5
3.0
2.5
2.0
1.5
(%o3) done
Method by Curtis T McMullen
Rasterisation of radius R using nonlinear scale :
/* R:2^r ; code in Maxima CAS */
(%i1) rMax:2;
rMin:0.1; /* R tends to 1 as r tends to 0 because R=2^r */
caution:0.93;
r:rMax;
unless r < rMin do (r:r*caution, R:2^r, disp(R));
(%o1) 2
(%o2) 0.1
(%o3) 0.93
(%o4) 2
3.630076621268644
3.316818342728249
3.049798654210589
2.820799296565715
2.623288972344463
2.452036351025536
2.302820150013453
2.172210053964319
2.057399794458432
1.956078968662366
1.866333866345315
1.786570189926742
1.715452421936768
1.651855942297139
1.594828977653743
1.54356218274762
1.497364183535279
1.455641805533936
1.417884005591913
1.383648747345652
1.352552229006523
1.324260000584035
1.29847960624068
1.274954463566127
1.253458750610672
1.233793117588228
1.215781076285127
1.199265948678497
1.184108278807163
1.170183629865262
1.157380702810876
1.145599724272923
1.134751060796999
1.124754023958772
1.115535836953474
1.107030738225175
1.099179201752541
1.091927256934423
1.085225893758314
1.079030541198431
1.073300608666395
1.067999081897454
(%o5) done
Rasterisation of radius R using nonlinear scale :
/* R = r^(1/(2^D)) ; code in Maxima CAS */
r: 2000;
D_Max:20;
D_Min:0.1;
for D:D_Min step 1 thru D_Max do disp(float(r^(1/2^D)));
(%o9) 2000
(%o10) 20
(%o11) 0.1
1202.181089063019
34.67248316840054
5.888334498684713
2.426589066711691
1.557751285254386
1.24809906868581
1.117183542971257
1.05696903595671
1.028089994094248
1.013947727495973
1.006949714482294
1.003468840812855
1.001732918902466
1.000866084400139
1.000432948477877
1.000216450813461
1.000108219550995
1.000054108311643
1.000027053789868
1.000013526803447
(%o12) done
The simple trick for drawing arcs: 2 coats of paint, along x axis and along y axis
Try only one plot to see the differance
The same trick is in drawing M-set with escape lines method.
Cardioid:
Cardioid by Paul Bourke
- Program in Delphi drawing cardioid
it draws cardioid using parametric equations
x = radius * cos(angle) * (1- cos(angle)
y = radius * sin(angle) * (1- cos(angle)
cusp is in pixel( cusp.x, cusp.y)
vertex is in point( -2*radius+cusp.x , cusp.y)
it uses floating point arithmethic


On this image one can see some angles [degrees] of fomula used to draw this cardioid

On this image one can see internal rays of main cardioid of M-set for angles 1/2,1/3 .. 1/10.
they are lines: c= ( r * ei *angle)/2 - (sqr(r)*ei*2*angle)/4;
as one can see these internal angles and rays are not the same as angles and rays used to draw cardioid with above formula.

Delphi program for drawing above images (see main cardioid). In status bar you can read period of orbit
Main page
Feel free to e-mail me!
Author: Adam Majewski adammaj1-at-o2-dot-pl
http://republika.pl/fraktal/
About