Поставил Матлаб, нравится, балуюсь

Для линии:
CODE
M = 5;
N = 3;
x_i = zeros(1, 2);
x_i(2) = M;
y_i = zeros(1, 2);
x = 0;
y = 0;
al_eps = 0.01*pi;
al = al_eps;
while al <= (pi - al_eps)
be = acot(M/N - cot(al));
% if be < 0 be = be + pi; end
k1 = tan(al);
k2 = -tan(be);
x0 = k2*M/(k2 - k1);
x = [x x0];
y = [y x0*k1];
al = al + 0.001*pi;
end
x(1) = []; y(1) = [];
figure(1)
clf reset
p_y_i = plot(x_i, y_i, 'or');
set(p_y_i,'LineWidth', 4);
title('Линия на расстоянии 3 от линии ведущий - ведомый')
xlabel('Ведущий: 0, ведомый: 5')
text(1, -2, 'A')
text(x_i(2) + 1, -2, 'B')
hold on
plot(x, y, '-x')
hold off
grid on
axis equal
Для окружности:
CODE
M = -2;
N = 3;
x_i = zeros(1, 2);
x_i(2) = M;
y_i = zeros(1, 2);
x = 0;
y = 0;
al = 0;
while al <= 2*pi
be = acot( (M/N - cos(al)) / sin(al) );
% if be < 0 be = be + pi; end
k1 = tan(al);
k2 = -tan(be);
x0 = k2*M/(k2 - k1);
x = [x x0];
y = [y x0*k1];
al = al + 0.001*pi;
end
x(1) = []; y(1) = [];
figure(1)
clf reset
p_y_i = plot(x_i, y_i, 'or');
set(p_y_i,'LineWidth', 4);
title('Окружность радиуса 3 с центром в ведущем')
xlabel('Ведущий: 0, ведомый: -2')
text(0.1, -0.2, 'A')
text(x_i(2) + 0.1, -0.2, 'B')
hold on
plot(x, y, '-x')
hold off
grid on
axis equal
Эскизы прикрепленных изображений