Как сделать цилиндр в Matlab без функции цилиндра - PullRequest
0 голосов
/ 06 ноября 2018
    nx = 400; 
    ny = 400;
    nz = 109;
    voxelsize_x = 2.036;
    voxelsize_y = 2.036;
    voxelsize_z = 2.027;
    FOV_diameter = 400;
    FOV_z = 109;

    [columnsInImage, rowsInImage, zInImage] = meshgrid(1:nx, 1:ny, 1:nz);
    sim_diameter_SC = 100/voxelsize_x; 
    sim_radius_SC = sim_diameter_SC/2;
    sim_diameter_LC = 200/voxelsize_x; 
    sim_radius_LC = sim_diameter_LC/2;
    sim_centerX = nx/2;
    sim_centerY = ny/2;
    sim_centerZ = nz/2;

    activity_LC = 10000;
    circlePixels_LC = (rowsInImage - sim_centerY).^2 ...
+ (columnsInImage - sim_centerX).^2 + (zInImage - sim_centerZ).^2 <= sim_radius_LC.^2;
    circlePixels_LC = circlePixels_LC.*activity_LC;

    activity_SC = 7000;
    circlePixels_SC = (rowsInImage - sim_centerY).^2 ...
+ (columnsInImage - sim_centerX).^2 + (zInImage - sim_centerZ).^2 <= sim_radius_SC.^2;
    circlePixels_SC = circlePixels_SC.*activity_SC;

    con_circle_emission = circlePixels_LC(:,:,:) - circlePixels_SC(:,:,:);

    figure;
    imagesc(con_circle_emission(:,:,50));

    filename='emission_400x400x109_frame003.raw';
    fid=fopen(filename,'w','l');
    count1=fwrite(fid,con_circle_emission,'float');
    fclose(fid);

У меня есть этот код, и в результате мы получаем, так сказать, 2 концентрических круга с разными «значениями». Например, когда вы просматриваете его в поперечном, корональном и сагиттальном сечениях, это круг (в основном сфера), но я хочу видеть «цилиндрическую часть». Я пытаюсь сделать это ЦИЛИНДРОМ, но я не знаю, как это сделать. Я видел площадь поверхности цилиндра, но я не уверен, как это сделать.

Кто-нибудь может мне помочь? (

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...