Определение сферы Matlab как текстовый файл
Я написал файл Matlab для создания 3D-сферы:
obstacle.origin_x=1.6;
obstacle.origin_y=0.8;
obstacle.origin_z=0.2;
obstacle.radius_obs=0.2;
save('obstacle.mat', 'obstacle');
Я нашел код, который подходит для моей проблемы, но определение препятствия в формате.txt
как я могу определить его как формат.txt?
Например, в коде, который я нашел, прямоугольная призма определяется как:
-0.5000 0 0.5000
0.1500 0 0.5000
0.1500 0 -0.5000
-0.5000 0 -0.5000
0.3500 0 0.5000
0.5000 0 0.5000
0.5000 0 -0.5000
0.3500 0 -0.5000
0.1500 0 0.5000
0.3500 0 0.5000
0.3500 0 0.3500
0.1500 0 0.3500
0.1500 0 0.1500
0.3500 0 0.1500
0.3500 0 -0.5000
0.1500 0 -0.5000
1 ответ
Трудно понять твой вопрос... вот что я интерпретирую
Вы хотите определить растровые точки сферы (= "препятствие") в txt-файле, вместо того, чтобы определять только параметры сферы внутри структуры?
Если это так, сначала вы должны самостоятельно рассчитать все растровые точки сферы, а затем распечатать их в текстовом файле, например, используя fprintf.
Я написал короткую функцию, которая рисует сферу:
function drawsphere()
bound_horz = 360*pi/180; % horizontal angle boundaries
bound_vert = 90*pi/180; % vertical angle boundaries
stepsize = 30; % discretization step size
r = 400; % radius of sphere
% define angle raster points
[theta,phi] = meshgrid(linspace(-bound_horz,bound_horz,stepsize),linspace(-bound_vert,bound_vert,stepsize));
% convert them to Cartesian coordinates
x = r.*cos(theta).*cos(phi);
y = r.*sin(theta).*cos(phi);
z = r.*sin(phi);
C1 = zeros(size(x));
C2 = zeros(size(x));
C3 = ones(size(x));
col = cat(3,C1,C2,C3);
% draw the sphere
fig333=figure(333);clf
cameratoolbar(fig333,'Show')
cameratoolbar(fig333,'SetMode','orbit')
axis vis3d
surf(x,y,z,col);
В конце добавьте fprintf-звонки, чтобы записать x/y/z в текстовый файл.