系列文章

序号直达链接
爱心系列
1Python制作一个无法拒绝的表白界面
2Python满屏飘字表白代码
3Python无限弹窗满屏表白代码
4Python李峋同款可写字版跳动的爱心
5Python流星雨代码
6Python漂浮爱心代码
7Python爱心光波代码
8Python普通的玫瑰花代码
9Python炫酷的玫瑰花代码
10Python多彩的玫瑰花代码
11Python爱心泡泡
12Python爱心射线
节日系列
1Python动漫风烟花秀代码
2Python新年烟花秀代码
3Python圣诞礼物代码
4Python画圣诞树代码
5Python可爱版圣诞树丨绿色
6Python可爱版圣诞树丨粉色
7Python大雪纷飞代码
8Python生日蛋糕代码
9Python五彩气球代码
10Python国庆祝福代码
11Python万圣礼物代码
12Python愚人节礼物代码
13Python浪漫星空代码
14Python樱花树代码
动漫系列
1Python名侦探柯南
2Python喜羊羊
3Python懒羊羊
4Python沸羊羊
5Python小灰灰
6Python小香香
7Python灰太狼
8Python海绵宝宝
9Python哆啦A梦
10Python凯蒂猫
11Python猫和老鼠
12Python草莓熊
13Python迷你皮卡丘
14Python高级皮卡丘
15Python豪华皮卡丘
16Python史迪仔
17Python小熊猫
18Python蜘蛛侠
19Python可爱版蜡笔小新
20Python萌萌的蜡笔小新
21Python罗小黑
22Python猪猪侠
炫酷系列
1  Python张万森下雪了
2Python一闪一闪亮晶晶
3Python黑客帝国代码雨
4Python七彩花朵
5Python模拟3D星空
6Python金榜题名
7Python满天星

目录

系列文章

写在前面

完整代码

代码分析

写在后面


写在前面

Python绘制篮球王子的完整代码。

完整代码

import turtle
from turtle import *
from math import *
turtle.setup(1.0, 1.0)
turtle.Turtle().screen.delay(0)     # 如需慢慢画,删除本行即可
turtle.title('篮球王子')


def ty_c(x,y,sita,a,b,p,q,c):
    fillcolor(c)
    si=2*pi/100
    penup()
    goto(x+a*cos(sita),y+a*sin(sita))
    pendown()
    t=0
    for i in range(201):
        if i*si+sita<=p:
            penup()
            goto(x+a*cos(i*si)*cos(sita)-b*sin(i*si)*sin(sita)\
                ,y+a*cos(i*si)*sin(sita)+b*sin(i*si)*cos(sita))
            pendown()
        elif p<=i*si+sita<=q+2*pi/100:
            if t==0:
                begin_fill()
                t=1
            goto(x+a*cos(i*si)*cos(sita)-b*sin(i*si)*sin(sita)\
                ,y+a*cos(i*si)*sin(sita)+b*sin(i*si)*cos(sita))
    end_fill()
#高级椭圆方程
def ty(x,y,sita,a,b,p,q):
    si=2*pi/100
    penup()
    goto(x+a*cos(sita),y+a*sin(sita))
    pendown()
    for i in range(201):
        if i*si+sita<p:
            penup()
            goto(x+a*cos(i*si)*cos(sita)-b*sin(i*si)*sin(sita)\
                ,y+a*cos(i*si)*sin(sita)+b*sin(i*si)*cos(sita))
            pendown()
        elif p<=i*si+sita<=q+2*pi/100:
            goto(x+a*cos(i*si)*cos(sita)-b*sin(i*si)*sin(sita)\
                ,y+a*cos(i*si)*sin(sita)+b*sin(i*si)*cos(sita))
speed(0)
hideturtle()
#篮球
pensize(10)
pencolor('black')
ty_c(350,-267,0,161,161,0,2*pi,'#ff9900')
ty(350,-267+161+50,0,161,161,7*pi/6+pi/12,11*pi/6-pi/12)
ty(350,-267-161-50,0,161,161,pi/6+pi/12,5*pi/6-pi/12)
ty(350,-267+161+330,0,500,500,8.5*pi/6,9.5*pi/6)
#脸
pensize(20)
ty_c(0,0,0,657/2,576/2,0,2*pi,'#ffcc00')
#眼睛
pensize(22)
ty_c(55,52,0,106,104,0,2*pi,'white')
ty_c(-165,60,0,101,99,0,2*pi,'white')
pensize(20)
ty_c(4,79,0,14,14,0,2*pi,'black')
ty_c(-201,80,0,14,14,0,2*pi,'black')
#嘴巴
pensize(12)
ty_c(-66,-76,0,102,62,0,2*pi,'#ff6600')
penup()
goto(-155,-50)
pendown()
goto(-134,-64)
goto(-115,-74)
goto(-90,-82)
goto(-67,-86)
goto(-47,-85)
goto(-25,-82)
goto(0,-77)
goto(15,-66)
goto(25,-55)
#腮红
pensize(1)
pencolor('red')
ty_c(-256,-90,15*pi/180,49,66,0,2*pi+15*pi/180,'red')
ty_c(201,-105,0,73,75,0,2*pi,'red')
#领口
color('black','black')
pensize(10)
penup()
goto(-275,-227)
pendown()
begin_fill()
goto(-241,-209)
goto(-189,-233)
goto(-166,-260)
goto(-127,-272)
goto(-88,-252)
goto(-49,-233)
goto(-19,-227)
goto(51,-237)
goto(108,-242)
goto(168,-242)
goto(210,-233)
goto(250,-206)
goto(252,-254)
goto(216,-269)
goto(-13,-353)
goto(-65,-362)
goto(-109,-356)
goto(-178,-317)
goto(-214,-296)
goto(-246,-266)
goto(-272,-245)
goto(-275,-227)
end_fill()
#衣服
penup()
goto(-244,-287)
pendown()
begin_fill()
goto(-269,-314)
goto(-310,-405)
goto(-304,-410)
goto(-21,-416)
goto(317,-410)
goto(331,-398)
goto(323,-381)
goto(319,-356)
goto(315,-320)
goto(275,-266)
goto(263,-257)
pensize(15)
pencolor('#c0c0c0')
 
goto(252,-254)
goto(216,-269)
goto(-13,-353)
pensize(13)
goto(-65,-362)
goto(-109,-356)
pensize(10)
goto(-178,-317)
goto(-214,-296)
goto(-246,-284)
end_fill()
#肩带
penup()
goto(-206,-310)
pendown()
pensize(30)
goto(-183,-363)
goto(-180,-384)
goto(-184,-414)
 
penup()
goto(229,-285)
pendown()
goto(203,-360)
pensize(34)
goto(190,-415)
 
penup()
goto(-115,-360)
pendown()
pensize(8)
goto(-96,-411)
goto(-75,-413)
goto(18,-371)
goto(69,-341)
goto(105,-325)
pensize(12)
goto(177,-297)
#中分
pencolor('#808080')
pensize(1)
penup()
goto(67,393)
pendown()
fillcolor('#808080')
begin_fill()
goto(43,+419)
goto(13,+431)
goto(-96,+426)
goto(-156,+402)
goto(-239,+336)
goto(-277,+300)
goto(-307,+263)
goto(-372,+153)
goto(-383,+101)
goto(-373,+57)
goto(-339,+38)
goto(-298,+40)
goto(-278,+61)
goto(-236,+74)
goto(-176,+103)
goto(-163,+128)
goto(-135,+224)
goto(-95,+265)
goto(-64,+271)
goto(-30,+253)
goto(22,+269)
goto(61,268)
goto(75,202)
goto(93,132)
goto(108,71)
goto(136,31)
goto(171,4)
goto(236,-10)
goto(277,-10)
goto(323,-25)
goto(363,-61)
goto(404,-35)
goto(423,14)
goto(453,71)
goto(457,120)
goto(441,170)
goto(398,227)
goto(331,285)
goto(283,323)
goto(232,360)
goto(168,396)
goto(122,416)
goto(87,406)
goto(67,393)
end_fill()
pencolor('black')
pensize(4)
goto(-30,+253)
done()

代码分析

这段代码使用Python的turtle模块来绘制一个卡通风格的人物图像。turtle是一个简单的绘图库,允许用户通过编程控制一个“turtle”(海龟)在屏幕上移动并绘制图形。

 1. 导入与设置

  • 导入了turtle模块,并从turtle模块中导入所有内容以便简化调用。
  • 设置了画布大小为全屏,并关闭了绘制延迟,使得图形绘制得更快。
  • 设置窗口标题为'篮球王子'。 

 2. 定义函数

  • ty_c 和 ty 函数用于绘制椭圆或部分椭圆,并且ty_c可以填充颜色。它们都接受多个参数,如中心点坐标、旋转角度、长轴和短轴长度、开始和结束的角度等。
  • 这些函数使用了参数化的椭圆方程来计算椭圆上的点,并根据指定的角度范围决定是否绘制这些点。

3. 绘制篮球

  • 使用ty_c函数绘制了一个橙色的篮球,并使用ty函数绘制了篮球上的线条。

4. 绘制脸部特征

  • 使用ty_c函数绘制了一个黄色的脸部轮廓。
  • 绘制了白色的眼睛,并在眼睛内添加了黑色的眼珠。
  • 绘制了橙色的嘴巴,并通过一系列的goto命令绘制了嘴巴的具体形状。
  • 添加了红色的腮红。

5. 绘制衣物

  • 使用begin_fillend_fill来绘制衣服的区域,包括领口和衣服主体。
  • 通过改变pencolorpensize属性来改变线条的颜色和宽度。

6. 细节

  • 使用了penup()pendown()来控制是否绘制路径。
  • 为了增加细节,还绘制了一些装饰性的元素,比如肩带和头发的中分线。

7. 完成绘制

  • 最后使用done()来显示绘制结果。 

这个程序展示了如何利用turtle的特性来创建复杂的图形,同时也展示了如何通过循环和条件语句来控制图形的绘制过程。整个代码逻辑清晰,层次分明,适合用来作为turtle模块的进阶教程示例。

写在后面

我是一只有趣的兔子,感谢你的喜欢。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部