Как рассчитать расстояние до всех точек внутри квадрата? - PullRequest
0 голосов
/ 10 июня 2018

У меня проблема с созданием некоторых геометрий внутри фантома с помощью Filed II framework. Я создал круг, но теперь у меня есть проблема с созданием квадрата внутри фантома.

Это следующий код для его создания в Matlab.Строка кода, которая производит внутри, это моя проблема.Для круга я вычислил расстояние между двумя точками внутри круга, и когда оно меньше радиуса круга, они находятся внутри круга.Но у меня есть проблема для треугольника или квадрата.

Phantom.x_size = 50/1000; % Width of phantom [mm]
Phantom.y_size = 10/1000; % Transverse width of phantom [mm]
Phantom.z_size = 60/1000; % Height of phantom [mm]
Phantom.z_start = 30/1000; % Start of phantom surface [mm];

N = Calculate_number_of_scatterers(Phantom);
N = 1000*ceil(N/1000);

% Create the general scatterers
x = (rand (N,1)-0.5)*Phantom.x_size;
y = (rand (N,1)-0.5)*Phantom.y_size;
z = rand (N,1)*Phantom.z_size + Phantom.z_start;

% Generate the amplitudes with a Gaussian distribution
amplitudes = randn(N,1);

%Make the cyst
r = 8/2/1000; %radius of cyst[mm]
xc = 10/1000; %place of the cyst
zc = 40/1000 + Phantom.z_start;
% [in,out] = inpolygon(xc,zc,x,z); 
inside = ( ((x-xc).^2 + (z-zc).^2) < r^2); % scatteres inside the cyst
amplitudes = amplitudes .* (1-inside); % amplitude of the scatteres inside the cyst
Phantom.positions = [x y z];
Phantom.amplitudes = amplitudes;
figure; 
plot3(Phantom.positions(:,1), Phantom.positions(:,3),Phantom.amplitudes,'.')
...