При запуске получаем следующее изображение:
Проекции на оси:
XY ZX
ZY
Таблица значений:
N |
X |
Y |
Z |
∆X |
∆Y |
∆Z |
0 |
0 |
0 |
0 |
- |
- |
- |
1 |
0,904 |
3,053 |
-72,930 |
0,174 |
0,612 |
0,030 |
2 |
4,915 |
8,574 |
-128,513 |
0,449 |
1,012 |
0,092 |
3 |
14,193 |
17,852 |
-199,307 |
0,869 |
1,465 |
0,208 |
4 |
28,625 |
26,523 |
-260,016 |
1,306 |
1,764 |
0,358 |
5 |
45,079 |
32,512 |
-306,849 |
1,679 |
1,932 |
0,512 |
6 |
72,275 |
37,798 |
-360,070 |
2,124 |
2,069 |
0,756 |
7 |
91,572 |
37,967 |
-384,331 |
2,335 |
2,105 |
0,926 |
3-ий способ:
%Исходные данные
L = [0, 73, 129, 201, 264, 314, 374, 405];
a = [0, 5, 9, 12, 19, 22, 33, 44];
A = [180, 147, 141, 129, 113, 107, 95, 86];
%Вычисление координат точек
s=0;
for t=1:8
s=s+L(1,t);
end
X=zeros(1,s); Y=zeros(1,s); Z=zeros(1,s);
Arad=zeros(1,8); Arad(1,:)=(A(1,:)*pi)/180;
arad=zeros(1,8); arad(1,:)=(a(1,:)*pi)/180;
count=2;
X(1)=0; Y(1)=0; Z(1)=0;
for n=1:7
k=1;
for g=1:L(1,n+1)
alpha=arad(1,n)+((arad(1,n+1)-arad(1,n))/L(1,n+1))*k;
Az=Arad(1,n)+((Arad(1,n+1)-Arad(1,n))/L(1,n+1))*k;
X(count)=sin(Az)*sin(alpha)*L(1,n+1)+X(count-1);
Y(count)=-cos(Az)*sin(alpha)*L(1,n+1)+Y(count-1);
Z(count)=-cos(alpha)*L(1,n+1)+Z(count-1);
count=count+1;
k=k+1;
end
end
%Прорисовка графика
p=plot3(X(1,:),Y(1,:),Z(1,:),'Color', 'g', 'LineWidth' ,3);
hold on;
xlabel('X,м'); ylabel('Y,м'); zlabel('Z,м');
grid on;
s1=num2str(X(s)); s2=num2str(Y(s)); s3=num2str(Z(s));
text(X(1),Y(1),Z(1),'Устье','Color','m', 'Fontsize', 11 );
text(X(s),Y(s),Z(s),'Забой','Color','m', 'Fontsize', 11 );
%Погрешности
Xi=zeros(1,s); Yi=zeros(1,s); Zi=zeros(1,s);
Xi(1)=0; Yi(1)=0; Zi(1)=0;
Ai(1,:)=A(1,:)+0.1; ai(1,:)=a(1,:)+0.5;
Aradi=zeros(1,8); Aradi(1,:)=(Ai(1,:)*pi)/180;
aradi=zeros(1,8); aradi(1,:)=(ai(1,:)*pi)/180;
count1=2;
for n=1:7
l=1;
for g=1:L(1,n+1)
dalpha1=aradi(1,n)+((aradi(1,n+1)-aradi(1,n))/L(1,n+1))*l;
dAz1=Aradi(1,n)+((Aradi(1,n+1)-Aradi(1,n))/L(1,n+1))*l;
Xi(count1)=sin(dAz1)*sin(dalpha1)*L(1,n+1)+Xi(count1-1);
Yi(count1)=-cos(dAz1)*sin(dalpha1)*L(1,n+1)+Yi(count1-1);
Zi(count1)=-cos(dalpha1)*L(1,n+1)+Zi(count1-1);
count1=count1+1;
l=l+1;
end
end
plot3(Xi(1,:),Yi(1,:),Zi(1,:),'Color','r');
hold on
Xm=zeros(1,s); Ym=zeros(1,s); Zm=zeros(1,s);
Xm(1)=0; Ym(1)=0; Zm(1)=0;
Am(1,:)=A(1,:)-0.1; am(1,:)=a(1,:)-0.5;
Aradm=zeros(1,8); Aradm(1,:)=(Am(1,:)*pi)/180;
aradm=zeros(1,8); aradm(1,:)=(am(1,:)*pi)/180;
count2=2;
for n=1:7
k=1;
for g=1:L(1,n+1)
dalpha2=aradm(1,n)+((aradm(1,n+1)-aradm(1,n))/L(1,n+1))*k;
dAz2=Aradm(1,n)+((Aradm(1,n+1)-Aradm(1,n))/L(1,n+1))*k;
Xm(count2)=sin(dAz2)*sin(dalpha2)*L(1,n+1)+Xm(count2-1);
Ym(count2)=-cos(dAz2)*sin(dalpha2)*L(1,n+1)+Ym(count2-1);
Zm(count2)=-cos(dalpha2)*L(1,n+1)+Zm(count2-1);
count2=count2+1;
k=k+1;
end
end
plot3(Xm(1,:),Ym(1,:),Zm(1,:),'Color','r')