Esophagus 3D Modelling Issue
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
Hello,
I am trying to build a 3D model of the esophagus (approximated to a cylinder), and I need to define the radius layer-by-layer. I have the data concerning the radius of every cross-section at some instants in time, but I do not know how can I create a dynamic 3D model. I took a look at the function cylinder and patch, but I did not manage to come up with anything.
Any help would be greatly appreciated.
10 个评论
Sara
2014-7-9
What do you need? To define the points on the surface? To plot it nicely? What is your goal?
Vittorio
2014-7-9
Sara
2014-7-9
Try this and let us know what you think. the radius and its position x are invented, replace them with your data.
clc
clearvars
close all
radius = [1 1.1 1.2 1.3 1.4 1.5 1.4 1.4 1.1 0.8];
x = linspace(1,30,10);
n = 600;
xx = zeros(numel(x),n);
yy = zeros(numel(x),n);
for i = 1:numel(x)
[xx(i,:),yy(i,:)] = circle(x(i),0,radius(i),n);
end
surf(repmat(x',1,n),xx,yy)
function [xx,yy] = circle(x,y,r,n)
ang=linspace(0,2*pi,n);
xp=r*cos(ang);
yp=r*sin(ang);
xx = x+xp;
yy = y+yp;
Image Analyst
2014-7-9
sara, post as an official Answer so you can get credit for it.
Vittorio
2014-7-10
To interactively rotate the cylinder type "rotate3d on" after your call to surf.
doc rotate3d
Vittorio
2014-7-10
Sara
2014-7-10
Look into
rotate
Vittorio
2014-7-11
回答(0 个)
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
