我知道Matlab有一个叫做圆柱体的函数,当圆周上的点数和半径长度时,为圆柱创建点。如果我不需要单位圆柱体,并且也不希望它以默认轴为中心(例如沿z轴),该怎么办?创建这样一个气缸最简单的方法是什么?提前谢谢。
答案 0 :(得分: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)
如果您还想旋转它以使其不沿z轴对齐,请使用rotate
。例如,要围绕x-axis
旋转90度,使其沿y轴对齐,请使用:
rotate(h,[1 0 0],90)
答案 1 :(得分:5)
将您最喜欢的scaling matrix,translation matrix和rotation matrix组合点数乘以。