• 技术文章 >常见问题 >Python常见问题

    怎么用python画小猪佩奇

    silencementsilencement2019-12-17 09:38:10原创4410

    最近社会猪可是火遍了大江南北,不蹭下热度可对不起它。见过手画的佩奇,见过用代码画的吗?

    没有?那就来看我大显身手。

    用python的turtle库来画小猪佩奇。

    有人问:turtle难不难?

    答曰:不难,就那几个方法,跟入新手村的任务一样简单。难得是要有耐心跟一定的画画功底。

    话不多说,直接上我苦苦搜寻(copy)而来的代码+注释版

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    140

    141

    142

    143

    144

    145

    146

    147

    148

    149

    150

    151

    152

    153

    154

    155

    156

    157

    158

    159

    160

    161

    162

    163

    164

    165

    166

    167

    168

    169

    170

    171

    172

    173

    174

    175

    176

    177

    178

    179

    180

    181

    182

    183

    184

    185

    186

    187

    188

    189

    190

    191

    192

    193

    194

    195

    196

    197

    198

    199

    200

    201

    202

    203

    204

    205

    206

    207

    208

    209

    210

    211

    212

    213

    214

    215

    216

    217

    218

    219

    220

    221

    222

    223

    224

    225

    226

    227

    228

    229

    230

    231

    232

    233

    234

    235

    236

    237

    238

    239

    240

    241

    242

    243

    244

    245

    246

    247

    248

    249

    250

    251

    252

    253

    254

    255

    256

    257

    258

    259

    260

    261

    262

    263

    264

    265

    # coding:utf-8

    import turtle as t

    t.pensize(4) # 设置画笔的大小

    t.colormode(255) # 设置GBK颜色范围为0-255

    t.color((255,155,192),"pink") # 设置画笔颜色和填充颜色(pink)

    t.setup(840,500) # 设置主窗口的大小为840*500

    t.speed(10) # 设置画笔速度为10

    #鼻子

    t.pu() # 提笔

    t.goto(-100,100) # 画笔前往坐标(-100,100)

    t.pd() # 下笔

    t.seth(-30) # 笔的角度为-30°

    t.begin_fill() # 外形填充的开始标志

    a=0.4

    for i in range(120):

       if 0<=i<30 or 60<=i<90:

           a=a+0.08

           t.lt(3) #向左转3度

           t.fd(a) #向前走a的步长

       else:

           a=a-0.08

           t.lt(3)

           t.fd(a)

    t.end_fill() # 依据轮廓填充

    t.pu() # 提笔

    t.seth(90) # 笔的角度为90度

    t.fd(25) # 向前移动25

    t.seth(0) # 转换画笔的角度为0

    t.fd(10)

    t.pd()

    t.pencolor(255,155,192) # 设置画笔颜色

    t.seth(10)

    t.begin_fill()

    t.circle(5) # 画一个半径为5的圆

    t.color(160,82,45) # 设置画笔和填充颜色

    t.end_fill()

    t.pu()

    t.seth(0)

    t.fd(20)

    t.pd()

    t.pencolor(255,155,192)

    t.seth(10)

    t.begin_fill()

    t.circle(5)

    t.color(160,82,45)

    t.end_fill()

    #头

    t.color((255,155,192),"pink")

    t.pu()

    t.seth(90)

    t.fd(41)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.begin_fill()

    t.seth(180)

    t.circle(300,-30) # 顺时针画一个半径为300,圆心角为30°的园

    t.circle(100,-60)

    t.circle(80,-100)

    t.circle(150,-20)

    t.circle(60,-95)

    t.seth(161)

    t.circle(-300,15)

    t.pu()

    t.goto(-100,100)

    t.pd()

    t.seth(-30)

    a=0.4

    for i in range(60):

       if 0<=i<30 or 60<=i<90:

           a=a+0.08

           t.lt(3) #向左转3度

           t.fd(a) #向前走a的步长

       else:

           a=a-0.08

           t.lt(3)

           t.fd(a)

    t.end_fill()

    #耳朵

    t.color((255,155,192),"pink")

    t.pu()

    t.seth(90)

    t.fd(-7)

    t.seth(0)

    t.fd(70)

    t.pd()

    t.begin_fill()

    t.seth(100)

    t.circle(-50,50)

    t.circle(-10,120)

    t.circle(-50,54)

    t.end_fill()

    t.pu()

    t.seth(90)

    t.fd(-12)

    t.seth(0)

    t.fd(30)

    t.pd()

    t.begin_fill()

    t.seth(100)

    t.circle(-50,50)

    t.circle(-10,120)

    t.circle(-50,56)

    t.end_fill()

    #眼睛

    t.color((255,155,192),"white")

    t.pu()

    t.seth(90)

    t.fd(-20)

    t.seth(0)

    t.fd(-95)

    t.pd()

    t.begin_fill()

    t.circle(15)

    t.end_fill()

    t.color("black")

    t.pu()

    t.seth(90)

    t.fd(12)

    t.seth(0)

    t.fd(-3)

    t.pd()

    t.begin_fill()

    t.circle(3)

    t.end_fill()

    t.color((255,155,192),"white")

    t.pu()

    t.seth(90)

    t.fd(-25)

    t.seth(0)

    t.fd(40)

    t.pd()

    t.begin_fill()

    t.circle(15)

    t.end_fill()

    t.color("black")

    t.pu()

    t.seth(90)

    t.fd(12)

    t.seth(0)

    t.fd(-3)

    t.pd()

    t.begin_fill()

    t.circle(3)

    t.end_fill()

    #腮

    t.color((255,155,192))

    t.pu()

    t.seth(90)

    t.fd(-95)

    t.seth(0)

    t.fd(65)

    t.pd()

    t.begin_fill()

    t.circle(30)

    t.end_fill()

    #嘴

    t.color(239,69,19)

    t.pu()

    t.seth(90)

    t.fd(15)

    t.seth(0)

    t.fd(-100)

    t.pd()

    t.seth(-80)

    t.circle(30,40)

    t.circle(40,80)

    #身体

    t.color("red",(255,99,71))

    t.pu()

    t.seth(90)

    t.fd(-20)

    t.seth(0)

    t.fd(-78)

    t.pd()

    t.begin_fill()

    t.seth(-130)

    t.circle(100,10)

    t.circle(300,30)

    t.seth(0)

    t.fd(230)

    t.seth(90)

    t.circle(300,30)

    t.circle(100,3)

    t.color((255,155,192),(255,100,100))

    t.seth(-135)

    t.circle(-80,63)

    t.circle(-150,24)

    t.end_fill()

    #手

    t.color((255,155,192))

    t.pu()

    t.seth(90)

    t.fd(-40)

    t.seth(0)

    t.fd(-27)

    t.pd()

    t.seth(-160)

    t.circle(300,15)

    t.pu()

    t.seth(90)

    t.fd(15)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.seth(-10)

    t.circle(-20,90)

    t.pu()

    t.seth(90)

    t.fd(30)

    t.seth(0)

    t.fd(237)

    t.pd()

    t.seth(-20)

    t.circle(-300,15)

    t.pu()

    t.seth(90)

    t.fd(20)

    t.seth(0)

    t.fd(0)

    t.pd()

    t.seth(-170)

    t.circle(20,90)

    #脚

    t.pensize(10)

    t.color((240,128,128))

    t.pu()

    t.seth(90)

    t.fd(-75)

    t.seth(0)

    t.fd(-180)

    t.pd()

    t.seth(-90)

    t.fd(40)

    t.seth(-180)

    t.color("black")

    t.pensize(15)

    t.fd(20)

    t.pensize(10)

    t.color((240,128,128))

    t.pu()

    t.seth(90)

    t.fd(40)

    t.seth(0)

    t.fd(90)

    t.pd()

    t.seth(-90)

    t.fd(40)

    t.seth(-180)

    t.color("black")

    t.pensize(15)

    t.fd(20)

    #尾巴

    t.pensize(4)

    t.color((255,155,192))

    t.pu()

    t.seth(90)

    t.fd(70)

    t.seth(0)

    t.fd(95)

    t.pd()

    t.seth(0)

    t.circle(70,20)

    t.circle(10,330)

    t.circle(70,30)

    最终的效果

    专题推荐:turtle
    上一篇:python不能去掉字符串的空格吗 下一篇:python怎么定义字节

    相关文章推荐

    • Python如何运用turtle绘制阴阳太极图• python的turtle能画啥

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网