def generate_shape_dict(shape, **kwargs): if shape == 'rect': return { 'method': 'rect', 'pos': kwargs.get('pos', (0, 0)), 'size': kwargs.get('size', (1, 1)), 'color': kwargs.get('color', (255, 255, 255)), 'width': kwargs.get('width', 0) # 添加边框宽度 } elif shape == 'line': return { 'method': 'line', 'start_pos': kwargs.get('start_pos', (0, 0)), 'end_pos': kwargs.get('end_pos', (1, 1)), 'color': kwargs.get('color', (255, 255, 255)) } elif shape == 'circle': return { 'method': 'circle', 'center': kwargs.get('center', (0, 0)), 'radius': kwargs.get('radius', 1), 'color': kwargs.get('color', (255, 255, 255)) } elif shape == 'ellipse': return { 'method': 'ellipse', 'pos': kwargs.get('pos', (0, 0)), 'size': kwargs.get('size', (1, 1)), 'color': kwargs.get('color', (255, 255, 255)) } elif shape == 'polygon': return { 'method': 'polygon', 'pointlist': kwargs.get('pointlist', []), 'color': kwargs.get('color', (255, 255, 255)) } elif shape == 'arc': return { 'method': 'arc', 'pos': kwargs.get('pos', (0, 0)), 'size': kwargs.get('size', (1, 1)), 'color': kwargs.get('color', (255, 255, 255)), 'start_angle': kwargs.get('start_angle', 0), 'stop_angle': kwargs.get('stop_angle', 3.14) } elif shape == 'point': return { 'method': 'point', 'pos': kwargs.get('pos', (0, 0)), 'color': kwargs.get('color', (255, 255, 255)) } elif shape == 'lines': return { 'method': 'lines', 'pointlist': kwargs.get('pointlist', []), 'color': kwargs.get('color', (255, 255, 255)) } else: raise ValueError("Unsupported shape type") def main(): print("欢迎使用图形参数生成器!") shape = input("请输入图形类型 (rect, line, circle, ellipse, polygon, arc, point, lines): ").strip().lower() params = {} if shape == 'rect': params['pos'] = tuple(map(int, input("请输入矩形位置 (x y): ").split())) params['size'] = tuple(map(int, input("请输入矩形大小 (width height): ").split())) params['color'] = tuple(map(int, input("请输入矩形颜色 (R G B): ").split())) params['width'] = int(input("请输入矩形边框宽度: ")) # 添加边框宽度输入 elif shape == 'line': params['start_pos'] = tuple(map(int, input("请输入起始位置 (x y): ").split())) params['end_pos'] = tuple(map(int, input("请输入结束位置 (x y): ").split())) params['color'] = tuple(map(int, input("请输入线条颜色 (R G B): ").split())) elif shape == 'circle': params['center'] = tuple(map(int, input("请输入圆心位置 (x y): ").split())) params['radius'] = int(input("请输入圆的半径: ")) params['color'] = tuple(map(int, input("请输入圆的颜色 (R G B): ").split())) elif shape == 'ellipse': params['pos'] = tuple(map(int, input("请输入椭圆位置 (x y): ").split())) params['size'] = tuple(map(int, input("请输入椭圆大小 (width height): ").split())) params['color'] = tuple(map(int, input("请输入椭圆颜色 (R G B): ").split())) elif shape == 'polygon': points = input("请输入多边形的点 (x1 y1 x2 y2 ...): ").split() params['pointlist'] = [(int(points[i]), int(points[i + 1])) for i in range(0, len(points), 2)] params['color'] = tuple(map(int, input("请输入多边形颜色 (R G B): ").split())) elif shape == 'arc': params['pos'] = tuple(map(int, input("请输入弧的位置 (x y): ").split())) params['size'] = tuple(map(int, input("请输入弧的大小 (width height): ").split())) params['color'] = tuple(map(int, input("请输入弧的颜色 (R G B): ").split())) params['start_angle'] = float(input("请输入弧的起始角度 (弧度制): ")) params['stop_angle'] = float(input("请输入弧的结束角度 (弧度制): ")) elif shape == 'point': params['pos'] = tuple(map(int, input("请输入点的位置 (x y): ").split())) params['color'] = tuple(map(int, input("请输入点的颜色 (R G B): ").split())) elif shape == 'lines': points = input("请输入线段的点 (x1 y1 x2 y2 ...): ").split() params['pointlist'] = [(int(points[i]), int(points[i + 1])) for i in range(0, len(points), 2)] params['color'] = tuple(map(int, input("请输入线段颜色 (R G B): ").split())) else: print("不支持的图形类型") return # 生成图形字典 shape_dict = generate_shape_dict(shape, **params) # 输出结果 print("生成的图形参数字典:") print(shape_dict) if __name__ == "__main__": main()