在python中根据用户输入半径计算圆柱体的高度

时间:2017-04-11 17:08:40

标签: python

我已经在python中编写了一些代码,其中将创建圆柱形状。半径值将来自用户输入。但是,我希望从半径计算圆柱的高度。我想出了一个fromula这样做,但我不知道如何把它放在代码中。它一直给我h没有定义错误。

volatile

2 个答案:

答案 0 :(得分:0)

看起来你还没定义' h'作为变量。但你设置了' h' polyCylinder()函数中的参数。您可能想宣布“' h'第一

h = landRadius*0.2/4;
land = cmds.polyCylinder(name='Land', sx=0, sy=0, sz=5, h=h, r=landRadius);

然后在代码中稍后有以下

cmds.polyExtrudeFacet('Land.f[120:139]', 'Land.f[160:179]', 'Land.f[105:106]', 'Land.f[115:116]', 
'Land.f[100:101]', 'Land.f[110:111]', 'Land.f[145:146]', 'Land.f[155:156]', 'Land.f[140:141]', 
'Land.f[150:151]', kft=True, ty=-h/2);

你有ty=-h/2,' h'将被定义。

答案 1 :(得分:0)

你有

land = cmds.polyCylinder(name='Land', sx=0, sy=0, sz=5, h=landRadius*0.2/4, r=landRadius); <snip> cmds.move(0, -h/2, 0, 'Land');

请注意,第一行中的h=landRadius*0.2/4将h参数设置为cmds.polyCylinder(我假设它看起来像

def polyCylinder(self,name,sx,sy,sz,h,r): #stuff

这不会在代码的其余部分设置h。我看起来你想要缩放高度。你可以做到

cmds.move(0, -landRadius*0.2/8, 0, 'Land');

或者可能 cmds.move(0, -land.h/2, 0, 'Land');