酷代码 AI
菜单

用python编写一个高级的栩栩如生的彼岸花

```python import turtle import math # 创建画布和画笔 screen = turtle.Screen() screen.bgcolor("black") screen.title("栩栩如生的彼岸花") pen = turtle.Turtle() pen.speed(0) # 最快速度 pen.hideturtle() # 绘制花瓣函数(单个波浪形花瓣) def draw_petal(pen, radius, angle): pen.pensize(2) pen.pencolor("red") pen.fillcolor("red") pen.begin_fill() for _ in range(2): pen.circle(radius, angle) # 弧线 pen.left(180 - angle) pen.end_fill() # 绘制多个花瓣,形成花朵 def draw_flower(pen, petal_count=6, radius=100, angle=60): for i in range(petal_count): pen.penup() pen.goto(0, 0) pen.setheading(i * (360 / petal_count)) pen.pendown() draw_petal(pen, radius, angle) # 绘制花蕊 def draw_stamen(pen): pen.penup() pen.goto(0, 0) pen.pendown() pen.pencolor("yellow") pen.pensize(3) for i in range(12): pen.penup() pen.goto(0, 0) pen.setheading(i * 30) pen.forward(20) pen.pendown() pen.forward(40) # 绘制弯曲的花茎 def draw_stem(pen): pen.penup() pen.goto(0, 0) pen.setheading(-90) pen.pensize(5) pen.pencolor("green") pen.pendown() # 使用贝塞尔曲线近似绘制自然弯曲的茎 for i in range(90): pen.forward(2) pen.right(1 if i < 45 else -1) # 先右转再左转,形成S形 # 绘制叶子(波浪形) def draw_leaf(pen, x, y, heading): pen.penup() pen.goto(x, y) pen.setheading(heading) pen.pendown() pen.pencolor("green") pen.fillcolor("green") pen.begin_fill() pen.forward(40) for _ in range(3): pen.left(60) pen.forward(10) pen.right(120) pen.forward(10) pen.left(60) pen.left(60) pen.forward(40) pen.end_fill() # 主绘制函数 def draw_lily(pen): draw_flower(pen, petal_count=8, radius=80, angle=60) # 花瓣更多更自然 draw_stamen(pen) draw_stem(pen) # 在茎的不同位置添加叶子 pen.penup() pen.goto(0, -50) pen.setheading(-90) pen.right(20) draw_leaf(pen, pen.xcor(), pen.ycor(), pen.heading()) pen.penup() pen.goto(0, -120) pen.setheading(-90) pen.left(30) draw_leaf(pen, pen.xcor(), pen.ycor(), pen.heading()) # 添加阴影效果(用灰色偏移绘制底层) def add_shadow(pen): pen.pencolor((0.2, 0.2, 0.2)) pen.fillcolor((0.2, 0.2, 0.2)) pen.penup() pen.goto(5, -5) # 偏移制造阴影 pen.pendown() draw_flower(pen, petal_count=8, radius=80, angle=60) # 设置颜色模式为RGB浮点 screen.colormode(1.0) # 可选:添加星点营造夜晚氛围(彼岸花常在秋夜盛开) def add_stars(): star = turtle.Turtle() star.color("white") star.pensize(1) for _ in range(100): x = screen.window_width() * (turtle.random() - 0.5) y = screen.window_height() * (turtle.random() - 0.5) star.penup() star.goto(x, y) star.pendown() star.dot(2) # 执行绘制 add_stars() add_shadow(pen) draw_lily(pen) # 完成后保持窗口打开 screen.mainloop() ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - turtle图形在不同系统分辨率下可能显示偏移,建议使用相对坐标而非绝对定位 - fillcolor填充时若路径未闭合可能导致渲染异常,需确保起始与结束位置逻辑一致 - 多层绘制(如阴影+主图)时层级顺序很重要,先画底层再画上层避免遮挡错误 [2025-11-22 20:20:22 | AI写代码神器 | 1130点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多