How create asimetric cone in matlab?
我需要创建一个通过在由两条曲线形成的形状的 y 轴上旋转生成的曲面。我已经有了这两条曲线的方程式。这是形状
我已经创建了曲面,但是对于由这条曲线之一形成的等距圆锥,这是我的脚本:
1 2 3 4 5 6 7 8 9 10 11 |
这是我的结果
在另一条曲线中是相同的函数 (z) 但改变 r,h,L
感谢您的帮助,
你应该使用参数网格而不是标量:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | % parameters h=[20 25]; rw=1; hw=5; L=[25 30]; nr = 50; nt = 25; theta=linspace(0,2*pi,nt); rmax = linspace(L(1),L(2),floor((nt+1)/2)); % generating **grids** for all parameters l = [linspace(L(1),L(2),floor((nt+1)/2)) linspace(L(2),L(1),floor((nt)/2))]; hh = [linspace(h(1),h(2),floor((nt+1)/2)) linspace(h(2),h(1),floor((nt)/2))]; [~,thetaGrid] = meshgrid(1:nr,theta); [~,lGrid] = meshgrid(1:nr,l); [~,hGrid] = meshgrid(1:nr,hh); rGrid = zeros(size(thetaGrid)); for ii = 1:floor((nt+1)/2) rGrid(ii,:) = linspace(rw,rmax(ii),nr); end rGrid(ceil((nt+1)/2):end,:) = rGrid(floor((nt+1)/2):-1:1,:); % set coordinate grids xx=rGrid.*cos(thetaGrid); yy=rGrid.*sin(thetaGrid); z=sqrt(log(rGrid./rw).*(hGrid.^2-hw^2)./log(lGrid./rw)+hw.^2); %Fuction of curve % plot surf(xx,yy,z) |