[size=-2]------ Добавлено в 18:59
Сделал, чтобы первая точка тоже сохранялась:
x := x2;
y := y2;
p := add_proc(p, x * step, y * step);
cgt._Debug(PChar('trace:' + int2str(x*step) + ',' + int2str(y*step)), clGreen);
old := md[x, y];
m[x, y] := -2;
While(x <> x1)Or(y <> y1) do
Только не факт, что так нужно. Если подвинуть элемент, то линк остаётся на месте. Говорил-же - надо по точкам выравнивать. Однако первая и последняя точка не всегда нужны, их бы как-нибудь автоматом удалять, если они на прямой лежат...
[size=-2]------ Добавлено в 19:02
И точки не совсем в точки элемента попадают, X*7+?