旋转布置只需要在原脚本中的末尾部分添加一行代码,即可实现旋转布置效果。
旋转布置时,第一次点击鼠标左键为选择布置原点,此时移动鼠标,组件会跟随鼠标发生转动,再次点击鼠标左键时,组件会根据点击位置绕原点旋转相应角度布置。
示例:
from pyp3d import *
class 立方体(Component):
def __init__(self):
Component.__init__(self)
self['长'] = Attr(1000.0, obvious=True)
self['宽'] = Attr(300.0, obvious=True)
self['高'] = Attr(500, obvious = True)
self['立方体'] = Attr(None, show=True)
self['旋转角度'] = Attr(0,obvious = True)
self['X'] = Attr(0.0, obvious=True)
self['Y'] = Attr(0.0, obvious=True)
self['Z'] = Attr(0.0, obvious=True)
self.replace()
@export
def replace(self):
L = self['长']
W = self['宽']
H = self['高']
x = self['X']
y = self['Y']
z = self['Z']
Angle = self['旋转角度']
TestCube = translate(x,y,z) * rotation(math.pi/180 * Angle) * scale(L,W,H) * Cube()
self['立方体'] = TestCube
if __name__ == "__main__":
# 只需加上下面两行即可实现旋转布置
# 第一行 对【立方体】这个class进行装饰
FinalGeometry = 立方体()
# 第二行 实现旋转布置 注意最后Place时需要填入的是装饰后的立方体
RotationPlace.RotationFunction(FinalGeometry)
place(FinalGeometry)

图4.1-1

图4.1-2

图4.1-3