При запуске получаем следующее изображение:
Проекции на оси:
XY ZX
ZY
Таблица значений:
N |
X |
Y |
Z |
∆X |
∆Y |
∆Z |
0 |
0 |
0 |
0 |
- |
- |
- |
1 |
3,465 |
5,335 |
-72,722 |
0,335 |
0,539 |
0,058 |
2 |
8,978 |
12,143 |
-128,032 |
0,626 |
0,924 |
0,136 |
3 |
20,611 |
21,564 |
-198,459 |
1,087 |
1,331 |
0,269 |
4 |
39,492 |
29,578 |
-258,027 |
1,549 |
1,568 |
0,451 |
5 |
57,404 |
35,055 |
-304,386 |
1,926 |
1,717 |
0,616 |
6 |
89,958 |
37,903 |
-354,706 |
2,357 |
1,813 |
0,903 |
7 |
111,439 |
36,401 |
-377,006 |
2,554 |
1,837 |
1,092 |
2-ой способ:
clear, clc
% L - длина ствола, a - зенитный угол, A - азимут
L = [0, 73, 129, 201, 264, 314, 374, 405];
a = [0, 5, 9, 12, 19, 22, 33, 44];
A = [0, 33, 39, 51, 67, 73, 85, 94];
% Перевод градусов в радианы
azimut = zeros(1, 8); azimut(1,:) = (A(1, :)*pi)/180;
zenit = zeros (1, 8); zenit(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:7
X(n) = X(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * sin((azimut(n)+azimut(n+1))/2);
Y(n) = Y(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * cos((azimut(n)+azimut(n+1))/2);
Z(n) = Z(n-1) + (L(n)-L(n+1)) * cos((zenit(n)+zenit(n+1))/2);
end
% Построим график
mainGraph = plot3(X(1:7),Y(1:7),Z(1:7),'Color','g','LineWidth', 3);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
text(X(1), Y(1), Z(1), ' устье');
text(X(7), Y(7), Z(7), ' забой');
%----Верхняя граница-----
L = [0, 73, 129, 201, 264, 314, 374, 405];
a = [0, 5.5, 9.5, 12.5, 19.5, 22.5, 33.5, 44.5];
A = [0, 33.1, 39.1, 51.1, 67.1, 73.1, 85.1, 94.1];
azimut = zeros(1, 8); azimut(1,:) = (A(1, :)*pi)/180;
zenit = zeros (1, 8); zenit(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:7
X(n) = X(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * sin((azimut(n)+azimut(n+1))/2);
Y(n) = Y(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * cos((azimut(n)+azimut(n+1))/2);
Z(n) = Z(n-1) + (L(n)-L(n+1)) * cos((zenit(n)+zenit(n+1))/2);
end
topGraph = plot3(X(1:7),Y(1:7),Z(1:7),'Color','r','LineWidth', 1);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
%----Нижняя граница------
L = [0, 73, 129, 201, 264, 314, 374, 405];
a = [0, 4.5, 8.5, 11.5, 18.5, 21.5, 32.5, 43.5];
A = [0, 32.9, 38.9, 50.9, 66.9, 72.9, 84.9, 93.9];
azimut = zeros(1, 8); azimut(1,:) = (A(1, :)*pi)/180;
zenit = zeros (1, 8); zenit(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:7
X(n) = X(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * sin((azimut(n)+azimut(n+1))/2);
Y(n) = Y(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * cos((azimut(n)+azimut(n+1))/2);
Z(n) = Z(n-1) + (L(n)-L(n+1)) * cos((zenit(n)+zenit(n+1))/2);
end
undGraph = plot3(X(1:7),Y(1:7),Z(1:7),'Color','r','LineWidth', 1);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;