1% Example 4: Fit a spline curve to sample points using chunkerfit, with
2% varying tolerance and an option to split between sample points.
4mip load --install magland/magland/chunkie;
6tic;
8rng(0)
9n = 20;
10tt = sort(2*pi*rand(n,1));
11r = chnk.curves.bymode(tt, [2 0.5 0.2 0.7]);
13opts = [];
14opts.ifclosed = true;
15opts.cparams = [];
16opts.cparams.eps = 1e-3;
17opts.pref = [];
18opts.pref.k = 16;
19chnkr = chunkerfit(r, opts);
21opts.splitatpoints = true;
22chnkrsp = chunkerfit(r, opts);
24opts.cparams.eps = 1e-9;
25opts.splitatpoints = false;
26chnkr2 = chunkerfit(r, opts);
28opts.splitatpoints = true;
29chnkrsp2 = chunkerfit(r, opts);
31toc;
33figure(7)
34clf
35tiledlayout(2,2,"TileSpacing","compact");
36nexttile; plot(chnkr,'k-x'); title(sprintf("nch = %d, eps=1e-3",chnkr.nch));
37hold on; plot(r(1,:),r(2,:),'bd');
38nexttile; plot(chnkrsp,'k-x'); title(sprintf("nch = %d, eps=1e-3\n (splitting)",chnkrsp.nch));
39hold on; plot(r(1,:),r(2,:),'bd');
40nexttile; plot(chnkr2,'k-x'); title(sprintf("nch = %d, eps=1e-9",chnkr2.nch));
41hold on; plot(r(1,:),r(2,:),'bd');
42nexttile; plot(chnkrsp2,'k-x'); title(sprintf("nch = %d, eps=1e-9\n (splitting)",chnkrsp2.nch));
43hold on; plot(r(1,:),r(2,:),'bd');