function [cp_up] = cp_up(cp_mid,k1,h1,st_point,end_point) %Из вашего кода n1 = length(h1) + 2; sumk = 0; for i=1:(n1-1) sumk = sumk + k1^(i-1); end s1 = 1 / sumk; t1 = zeros([1,n1]); cp_up = zeros([n1, 2]); for i = 2:n1 t1(i) = t1(i-1) + k1^(i - 2) * s1; end midPoints = bezierPoints(cp_mid,t1); cp_up(1, :) = st_point; cp_up(n1, :) = end_point; for i = 2 : (n1 - 1) f = bezierPrime(cp_mid,t1(i)); cp_up(i, 2) = midPoints(i, 2) + h1(i-1) / sqrt(1 + (f(1, 2))^2); cp_up(i, 1) = midPoints(i, 1) + sqrt(h1(i-1)^2 - (cp_up(i, 2) - midPoints(i, 2))^2); end end