如何在Python的turtle库中调整绘制的心形图形尺寸?
解决方法
你的问题核心是单独修改心形的某几个数值会破坏它的比例结构,导致变形。最简单的办法是给整个心形加一个统一的缩放因子,把所有和长度相关的数值按比例缩小,同时把心形封装成函数,方便你调整大小和位置。
下面是修改后的完整代码:
from turtle import * speed(100) hideturtle() width(3.5) # 绘制骷髅主体 lt(90) circle(200, extent=180) # 颅顶 lt(6) circle(170, extent=45) # 颧骨1 rt(65) fd(80) lt(104) fd(345) lt(104) fd(80) # 下颌部分 rt(50) circle(175, extent=40) # 颧骨2 penup() goto(-210, 50) pendown() circle(70, extent=360) # 眼窝1 penup() goto(-50, 50) pendown() circle(70, extent=360) # 眼窝2 # 封装可缩放的倒置心形函数 def draw_inverted_heart(x, y, scale=1.0): penup() goto(x, y) pendown() setheading(180) # 带缩放的曲线绘制 def curve(): for _ in range(200): rt(1) fd(1 * scale) lt(140) fd(111.65 * scale) curve() lt(120) curve() fd(111.70 * scale) # 调用函数绘制适配的鼻子心形,scale控制大小,坐标控制位置 draw_inverted_heart(-130, -20, scale=0.3) done()
关键说明:
- 给心形所有移动长度(包括曲线里的小步长)都乘以
scale参数,保证整体比例不变,不会变形。 - 封装成函数后,你只需要修改
scale的值就能调整大小,比如scale=0.2会更小,scale=0.5会更大。 - 调整了心形的起始坐标
(-130, -20),刚好适配骷髅的鼻子区域,你可以自己微调这个坐标来移动心形位置。
内容的提问来源于stack exchange,提问作者Wazzabi
相关产品推荐
相关产品推荐

