创建轴中心不同的圆柱体

sta*_*tor 6 matlab geometry

我知道Matlab有一个叫做圆柱体的函数,当圆周上的点数和半径长度时,为圆柱体创建点.如果我不需要单位圆柱体,并且也不希望它以默认轴为中心(例如沿z轴),该怎么办?创建这样一个气缸最简单的方法是什么?提前致谢.

Ram*_*nka 11

以前的答案是好的,但你可以得到matlab做更多的工作对你(因为结果cylinder单独x,y,z的组件,你需要工作一点做矩阵乘法的旋转).要使圆柱体的底部中心位于[x0 y0 z0],缩放[xf yf xf](使用xf=yf除非您需要椭圆柱体),请使用:

[x y z] = cylinder;
h=mesh(x*xf+x0,y*yf+y0,z*zf+z0)
Run Code Online (Sandbox Code Playgroud)

如果您还想旋转它以使其不沿z轴对齐,请使用rotate.例如,要旋转大约x-axis90度,使其沿y轴对齐,请使用:

rotate(h,[1 0 0],90)
Run Code Online (Sandbox Code Playgroud)


Car*_*rum 5

通过您最喜欢的缩放矩阵,平移矩阵旋转矩阵的组合来乘以点.