clc; close(winsid()); // długości ramion manipulatora d1 = d2 = // konfiguracja podstawowa t1 = t2 = // konfiguracja alternatywna t2p = t1p = r1 = [d1 * cos(t1), d1 * sin(t1)]; r2 = r1 + [d2 * cos(t1 + t2), d2 * sin(t1 + t2)]; r1p = [d1 * cos(t1p), d1 * sin(t1p)]; r2p = r1p + [d2 * cos(t1p + t2p), d2 * sin(t1p + t2p)]; R = d1 + d2; r = abs(d1 - d2); ang = linspace(0, 360, 360) * %pi / 180; c1x = r * cos(ang); c1y = r * sin(ang); c2x = R * cos(ang); c2y = R * sin(ang); cr = (d1 + d2) / 100; mr = 1.1; xlb = min([-2 * cr, r1(1), r2(1), r1p(1), r2p(1)]); xub = max([2 * cr, r1(1), r2(1), r1p(1), r2p(1)]); ylb = min([-2 * cr, r1(2), r2(2), r1p(2), r2p(2)]); yub = max([2 * cr, r1(2), r2(2), r1p(2), r2p(2)]); plot(c1x, c1y, c2x, c2y); plot([0, r1(1), r2(1)], [0, r1(2), r2(2)], .. [0, r1p(1), r2p(1)], [0, r1p(2), r2p(2)]); xfarc(-cr, cr, 2 * cr, 2 * cr, 0, 360 * 64); xfarc(r1(1) - cr, r1(2) + cr, 2 * cr, 2 * cr, 0, 360 * 64); xfarc(r1p(1) - cr, r1p(2) + cr, 2 * cr, 2 * cr, 0, 360 * 64); xfarc(r2(1) - cr, r2(2) + cr, 2 * cr, 2 * cr, 0, 360 * 64); xfarc(r2p(1) - cr, r2p(2) + cr, 2 * cr, 2 * cr, 0, 360 * 64); ax = gca(); h1 = ax.children(7).children(2); h2 = ax.children(7).children(1); h3 = ax.children(6).children(2); h4 = ax.children(6).children(1); h5 = ax.children(4); h6 = ax.children(3); h7 = ax.children(2); h8 = ax.children(1); h1.foreground = 3; h2.foreground = 3; h3.thickness = 3; h4.thickness = 3; h5.background = 6; h6.background = 6; h7.background = 5; h8.background = 5; xgrid; isoview