Functions | |
figure (1) | |
id | bod1x () |
1/2 | tec1 () |
1/2 | bod1y () |
if (imag(Ay(1))==0) reseni(1) | |
end | if (imag(Ay(2))==0) reseni(2) |
end | if (imag(Ay(3))==0) reseni(3) |
end | if (imag(Ay(4))==0) reseni(4) |
plot (bod1(1), bod1(2),'rx') | |
plot (bod2(1), bod2(2),'rx') axis([0 11.5 0 7]) xlabel('x') | |
ylabel ('y') | |
title ('UPRAVENY kubicky spline z Matlabu') | |
if (reseni(1)==1)%1.polynom X1 | |
end | if (reseni(2)==1)%2.polynom X2 |
end | if (reseni(3)==1)%3.polynom X3 |
end | if (reseni(4)==1)%4.polynom X4 |
end | Y2 (i)) |
end | Y3 (i)) |
end | Y4 (i)) |
Variables | |
clear | all |
clc | |
pocita se segment trajektorie s nasledujicim | zadanim |
pocita se segment trajektorie s nasledujicim tecen a krivosti | bod1 = [2,2]' |
bod2 = [8,6]' | |
tecna1 = [1,0.02]' | |
tecna2 = [1,0.01]' | |
cur1 = 0.1 | |
Ax = -20 | |
bod1x = bod1(1) | |
bod1y = bod1(2) | |
bod2x = bod2(1) | |
bod2y = bod2(2) | |
tec1 = tecna1(2)/tecna1(1) | |
tec2 = tecna2(2)/tecna2(1) | |
Dy = [bod1y | |
Cx = [1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2) | |
Cy = [tec1*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2)) | |
Bx = [bod2x-Ax-1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)-1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2)-bod1x | |
By = [-tec2*Ax-2*tec2*bod2x+tec2*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))+2*tec2*bod1x+3*bod2y-2*tec1*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))-3*bod1y | |
Ay = [-2*bod2y+tec2*Ax+2*tec2*bod2x-tec2*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))-2*tec2*bod1x+tec1*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))+2*bod1y | |
Dx | |
end vykresleni | splinu |
hold | on |
t = 0:0.005:1 | |
Y1 = Ay(1)*t.^3 + By(1)*t.^2 + Cy(1)*t + Dy(1) | |
Y2 = Ay(2)*t.^3 + By(2)*t.^2 + Cy(2)*t + Dy(2) | |
Y3 = Ay(3)*t.^3 + By(3)*t.^2 + Cy(3)*t + Dy(3) | |
Y4 = Ay(4)*t.^3 + By(4)*t.^2 + Cy(4)*t + Dy(4) | |
end for | i |
id bod1x | ( | ) | [virtual] |
1/2 bod1y | ( | ) | [virtual] |
figure | ( | 1 | ) |
end if | ( | reseni(4) | = =1 |
) |
end if | ( | reseni(3) | = =1 |
) |
end if | ( | reseni(2) | = =1 |
) |
if | ( | imag(Ay(1)) | = =0 |
) |
if | ( | reseni(1) | = =1 |
) |
1/2 tec1 | ( | ) | [virtual] |
title | ( | 'UPRAVENY kubicky spline z Matlabu' | ) |
ylabel | ( | 'y' | ) |
clear all |
Ax = -20 |
Ay = [-2*bod2y+tec2*Ax+2*tec2*bod2x-tec2*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))-2*tec2*bod1x+tec1*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))+2*bod1y |
bod1x = bod1(1) |
bod1y = bod1(2) |
bod2 = [8,6]' |
Bx = [bod2x-Ax-1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)-1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2)-bod1x |
By = [-tec2*Ax-2*tec2*bod2x+tec2*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))+2*tec2*bod1x+3*bod2y-2*tec1*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2))-3*bod1y |
cur1 = 0.1 |
Cx = [1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2) |
Cy = [tec1*(1/cur1*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)+1/cur1*(-(2*((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2*tec1-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec2^2-((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2)*tec1^2-6*cur1*tec2*bod2y+2*cur1*tec1^2*bod1x+2*cur1*tec1^2*Ax+6*cur1*bod2y*tec1+2*cur1*tec2*tec1*bod1x+2*cur1*tec2^2*Ax-6*cur1*tec1*bod1y+4*cur1*tec2^2*bod2x-4*cur1*tec2^2*bod1x+6*cur1*tec2*bod1y-2*cur1*tec1^2*bod2x-4*cur1*tec2*Ax*tec1-2*cur1*tec2*bod2x*tec1)/(3*tec1^2+3*tec1^4+1+tec1^6)/((-2*tec2*tec1+tec2^2+tec1^2)/(3*tec1^2+3*tec1^4+1+tec1^6))^(1/2))^(1/2)) |
Dy = [bod1y |
hold on |
t = 0:0.005:1 |
tecna1 = [1,0.02]' |
tecna2 = [1,0.01]' |
pocita se segment trajektorie s nasledujicim zadanim |