Teleco
Publicado por Gonzalo (1 intervención) el 11/12/2002 10:45:50
Cómo se obtiene el angulo de superficie en un punto cualquiera en unos datos en 3D, como por ejemplo los q se obtienen con 'load mri'
Valora esta pregunta


0
% Cargar los datos 'mri' para tener un conjunto de datos 3D de ejemplo
load mri;
% Crear una cuadrícula en 3D
[x, y, z] = meshgrid(1:size(D, 1), 1:size(D, 2), 1:size(D, 3));
% Seleccionar un punto específico en el conjunto de datos (por ejemplo, el punto (20, 30, 10))
punto = [20, 30, 10];
% Calcular el gradiente de la superficie en el punto seleccionado
[dx, dy, dz] = gradient(D);
gradiente_en_punto = [interp3(x, y, z, dx, punto(2), punto(1), punto(3)), ...
interp3(x, y, z, dy, punto(2), punto(1), punto(3)), ...
interp3(x, y, z, dz, punto(2), punto(1), punto(3))];
% Calcular el ángulo de la superficie en el punto seleccionado
angulo_superficie_en_punto = atan2(norm(cross(gradiente_en_punto, [0, 0, 1])), dot(gradiente_en_punto, [0, 0, 1]));
disp(['El ángulo de la superficie en el punto seleccionado es: ' num2str(rad2deg(angulo_superficie_en_punto)) ' grados']);