gpt4 book ai didi

matlab - 将平面弯曲成封闭的曲面/圆柱体

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:09 25 4
gpt4 key购买 nike

我正在 Matlab 中做一个数学实验,结果应该是 x,y 平面上的一个圆。但有时,圆圈开始螺旋上升。我现在正在尝试将 x,y 平面弯曲成圆柱体(如下图所示)。目前我只有点的 x 和 y 坐标。

我试过将它们转换成极坐标,然后使用一些“冲浪”突击队,但现在没有任何效果

cylinder
(来源:wtcoeselgem.be)

编辑:我按照 Ander Biguri 的建议使用了 plot3 命令,结果如下图所示。

cylinder2
(来源:wtcoeselgem.be)

最佳答案

我会认为您有一条由 xy 坐标定义的曲线,您希望围绕圆柱折叠

%% // Generate sample data
x = linspace(0,10*pi) ;
y2 = cos(x) ;
y1 = 10*cos(x/10) ;
y = y1+y2 ; y = y-min(y) ;
figure, plot(x,y,'-o') ;

这会产生:
plot flat

接下来我定义一个基本的圆柱体,没有什么原创的:

%% // Basic cylinder (just for background)
[Xc,Yc,Zc] = cylinder(1,100);
Zc = Zc * max(y) ;
hs = surf(Xc,Yc,Zc) ;
set(hs,'FaceColor',[.8 .8 .8],'FaceAlpha',0.5,'EdgeColor','none') ;
hold on

有趣的是:

%% // Fold the points around the cylinder
Number_of_turn = 2 ;
xrange = [min(x),max(x)] ;
xspan = xrange(2)-xrange(1) ;
xc = x / xspan * 2*pi * Number_of_turn ;

Xp = cos(xc) ;
Zp = y ;
Yp = sin(xc) ;

hp = plot3(Xp,Yp,Zp,'-ok') ;

哪个渲染:
plot folded

在这个例子中,我假设您想要将曲线环绕在圆柱体的“2 圈”周围。这可以使用 Number_of_turn 变量轻松更改。

请注意,您还可以通过将 XpYp 坐标乘以您的半径来更改圆柱体的半径。

关于matlab - 将平面弯曲成封闭的曲面/圆柱体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26408863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com