Python怎么利用Turtle绘制哆啦A梦和小猪佩奇

wufei123 发布于 2023-05-11 阅读(1547)

1.哆啦A梦

“只要把愿望系在竹竿上请求月亮女神,心愿便能达成”。我超喜欢这句话。

哆啦A梦的创造要追溯到1969年的某个截稿日,作者藤子·F·不二雄的家里突然闯进了一只小猫,虽然很快就要截稿了,但作者还是和小猫玩了起来,还替小猫挠虱子,而这一挠就是几个小时。等作者发现时间不够用的时候,已经来不及完成稿子。这时作者像热锅上的蚂蚁走来走去,突然踢到了女儿的不倒翁玩具,于是作者灵光一现,把猫的形象和不倒翁结合起来,就创造了哆啦A梦。

2.小猪佩奇

对比于国内的《喜羊羊与灰太狼》和《熊出没》,我希望有一天喜羊羊被灰太狼炖了、熊大被光头强一枪打中,然后直接卖到动物园。(哈哈哈......)可是这个想法一直没实现,有些失落。还是看小猪佩奇吧:

由英国E1 Kids于2004年5月31日发行首播后,其动画片已于全球180个地区播放,现已播出6季;

中国中央电视台少儿频道也在热播之中,极简的动画风格,幽默的对话语调,深具教育意义的故事情节,不仅能让学龄前儿童学习知识,更能让小朋友们从小养成良好的生活习惯体验生活,深受全球各地小朋友们以及其家长们的喜爱。

3.Python代码实现(哆啦A梦)

Python怎么利用Turtle绘制哆啦A梦和小猪佩奇

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

import turtle as t

t.title('哆啦A梦')

# t.speed(5)

t.pensize(8)

t.hideturtle()

t.screensize(500, 500, bg='white')

  

"""猫脸"""

t.fillcolor('#00A1E8')

t.begin_fill()

t.circle(120)

t.end_fill()

t.pensize(3)

t.fillcolor('white')

t.begin_fill()

t.circle(100)

t.end_fill()

t.pu()

t.home()

t.goto(0, 134)

t.pd()

t.pensize(4)

t.fillcolor("#EA0014")

t.begin_fill()

t.circle(18)

t.end_fill()

t.pu()

t.goto(7, 155)

t.pensize(2)

t.color('white', 'white')

t.pd()

t.begin_fill()

t.circle(4)

t.end_fill()

t.pu()

t.goto(-30, 160)

t.pensize(4)

t.pd()

t.color('black', 'white')

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.goto(30, 160)

t.pensize(4)

t.pd()

t.color('black', 'white')

t.begin_fill()

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.goto(-38, 190)

t.pensize(8)

t.pd()

t.right(-30)

t.forward(15)

t.right(70)

t.forward(15)

t.pu()

t.goto(15, 185)

t.pensize(4)

t.pd()

t.color('black', 'black')

t.begin_fill()

t.circle(13)

t.end_fill()

t.pu()

t.goto(13, 190)

t.pensize(2)

t.pd()

t.color('white', 'white')

t.begin_fill()

t.circle(5)

t.end_fill()

t.pu()

t.home()

t.goto(0, 134)

t.pensize(4)

t.pencolor('black')

t.pd()

t.right(90)

t.forward(40)

t.pu()

t.home()

t.goto(0, 124)

t.pensize(3)

t.pencolor('black')

t.pd()

t.left(10)

t.forward(80)

t.pu()

t.home()

t.goto(0, 114)

t.pensize(3)

t.pencolor('black')

t.pd()

t.left(6)

t.forward(80)

t.pu()

t.home()

t.goto(0, 104)

t.pensize(3)

t.pencolor('black')

t.pd()

t.left(0)

t.forward(80)

"""左边的胡子"""

t.pu()

t.home()

t.goto(0, 124)

t.pensize(3)

t.pencolor('black')

t.pd()

t.left(170)

t.forward(80)

t.pu()

t.home()

t.goto(0, 114)

t.pensize(3)

t.pencolor('black')

t.pd()

t.left(174)

t.forward(80)

t.pu()

t.home()

t.goto(0, 104)

t.pensize(3)

t.pencolor('black')

t.pd()

t.left(180)

t.forward(80)

t.pu()

t.goto(-70, 70)

t.pd()

t.color('black', 'red')

t.pensize(6)

t.seth(-60)

t.begin_fill()

t.circle(80, 40)

t.circle(80, 80)

t.end_fill()

t.pu()

t.home()

t.goto(-80, 70)

t.pd()

t.forward(160)

t.pu()

t.home()

t.goto(-50, 50)

t.pd()

t.pensize(1)

t.fillcolor("#eb6e1a")

t.seth(40)

t.begin_fill()

t.circle(-40, 40)

t.circle(-40, 40)

t.seth(40)

t.circle(-40, 40)

t.circle(-40, 40)

t.seth(220)

t.circle(-80, 40)

t.circle(-80, 40)

t.end_fill()

# 领带

t.pu()

t.goto(-70, 12)

t.pensize(14)

t.pencolor('red')

t.pd()

t.seth(-20)

t.circle(200, 30)

t.circle(200, 10)

"""铃铛"""

t.pu()

t.goto(0, -46)

t.pd()

t.pensize(3)

t.color("black", '#f8d102')

t.begin_fill()

t.circle(25)

t.end_fill()

t.pu()

t.goto(-5, -40)

t.pd()

t.pensize(2)

t.color("black", '#79675d')

t.begin_fill()

t.circle(5)

t.end_fill()

t.pensize(3)

t.right(115)

t.forward(7)

t.mainloop()

4.Python代码实现(小猪佩奇 )

Python怎么利用Turtle绘制哆啦A梦和小猪佩奇

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

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

import turtle

from turtle import *

turtle.title('小猪佩奇')

  

def nose(x,y):

    """画鼻子"""

    pensize(5)

    pencolor((255, 155, 192))

    penup()

    # 将海龟移动到指定的坐标

    goto(x,y)

    pendown()

    # 设置海龟的方向(0-东、90-北、180-西、270-南)

    setheading(-30)

    begin_fill()

    fillcolor(255, 192, 203)

    a = 0.4

    for i in range(120):

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

            a = a + 0.08

            # 向左转3度

            left(3)

            # 向前走

            forward(a)

        else:

            a = a - 0.08

            left(3)

            forward(a)

    end_fill()

    penup()

    setheading(90)

    forward(25)

    setheading(0)

    forward(10)

    pendown()

    """设置画笔的颜色(红, 绿, 蓝)"""

    pencolor(255, 155, 192)

    setheading(10)

    begin_fill()

    circle(5)

    color(160, 82, 45)

    end_fill()

    penup()

    setheading(0)

    forward(20)

    pendown()

    pencolor(255, 155, 192)

    setheading(10)

    begin_fill()

    circle(5)

    color(160, 82, 45)

    end_fill()

  

  

def head(x, y):

    """画头"""

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

    penup()

    goto(x,y)

    setheading(0)

    pendown()

    begin_fill()

    setheading(180)

    circle(300, -30)

    circle(100, -60)

    circle(80, -100)

    circle(150, -20)

    circle(60, -95)

    setheading(161)

    circle(-300, 15)

    penup()

    goto(-100, 100)

    pendown()

    setheading(-30)

    a = 0.4

    for i in range(60):

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

            a = a + 0.08

            lt(3) #向左转3度

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

        else:

            a = a - 0.08

            lt(3)

            fd(a)

    end_fill()

  

  

def ears(x,y):

    """画耳朵"""

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

    penup()

    goto(x, y)

    pendown()

    begin_fill()

    setheading(100)

    circle(-50, 50)

    circle(-10, 120)

    circle(-50, 54)

    end_fill()

    penup()

    setheading(90)

    forward(-12)

    setheading(0)

    forward(30)

    pendown()

    begin_fill()

    setheading(90)

    circle(-50, 50)

    circle(-10, 120)

    circle(-50, 56)

    end_fill()

  

  

def eyes(x,y):

    """画眼睛"""

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

    penup()

    setheading(90)

    forward(-20)

    setheading(0)

    forward(-95)

    pendown()

    begin_fill()

    circle(15)

    end_fill()

    color("black")

    penup()

    setheading(90)

    forward(12)

    setheading(0)

    forward(-3)

    pendown()

    begin_fill()

    circle(3)

    end_fill()

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

    penup()

    seth(90)

    forward(-25)

    seth(0)

    forward(40)

    pendown()

    begin_fill()

    circle(15)

    end_fill()

    color("black")

    penup()

    setheading(90)

    forward(12)

    setheading(0)

    forward(-3)

    pendown()

    begin_fill()

    circle(3)

    end_fill()

  

  

def cheek(x,y):

    """画脸颊"""

    color((255, 155, 192))

    penup()

    goto(x,y)

    pendown()

    setheading(0)

    begin_fill()

    circle(30)

    end_fill()

  

  

def mouth(x,y):

    """画嘴巴"""

    color(239, 69, 19)

    penup()

    goto(x, y)

    pendown()

    setheading(-80)

    circle(30, 40)

    circle(40, 80)

  

def body(x,y):

    '''画身体'''

    penup()

    goto(x,y)

    pencolor('red')

    fillcolor(250,106,106)

    pendown()

    begin_fill()

    setheading(-66)

    circle(-450,17)

    setheading(180)

    forward(185)

    setheading(85)

    circle(-450,17)

    end_fill()

    '''右手'''

    penup()

    goto(110,-45)

    pendown()

    pensize(8)

    pencolor(255, 192, 203)

    setheading(30)

    circle(-400,10)

    penup()

    goto(167,-5)

    pendown()

    setheading(-120)

    forward(20)

    left(100)

    forward(20)

    '''左手'''

    penup()

    goto(-25,-45)

    pendown()

    pencolor(255, 192, 203)

    setheading(150)

    circle(400,10)

    penup()

    goto(-78,-6)

    pendown()

    setheading(-60)

    forward(20)

    right(100)

    forward(20)

  

def feet1(x,y):

    pensize(7)

    pencolor(255, 192, 203)

    penup()

    goto(x,y)

    setheading(-90)

    pendown()

    forward(10)

    penup()

    goto(x-12,y-10)

    pendown()

    pencolor(238,201,0)

    fillcolor(238,230,132)

    begin_fill()

    setheading(0)

    forward(24)

    right(90)

    forward(36)

    right(90)

    forward(40)

    circle(-10,180)

    forward(16)

    left(90)

    forward(12)

    end_fill()

  

def feet2(x,y):

    pensize(7)

    pencolor(255, 192, 203)

    penup()

    goto(x,y)

    setheading(-90)

    pendown()

    forward(10)

    penup()

    goto(x-12,y-10)

    pendown()

    pencolor(238,201,0)

    fillcolor(238,230,132)

    begin_fill()

    setheading(0)

    forward(24)

    right(90)

    forward(36)

    right(90)

    forward(40)

    circle(-10,180)

    forward(16)

    left(90)

    forward(12)

    end_fill()

  

def tail(x,y):

    pensize(8)

    penup()

    goto(x,y)

    pendown()

    pencolor(255, 192, 203)

    setheading(-5)

    circle(30,100)

    circle(10,180)

    circle(20,150)

  

def backg(x):

    penup()

    goto(-420,x)

    setheading(0)

    fillcolor(50,205,50)

    begin_fill()

    forward(840)

    right(90)

    forward(300)

    right(90)

    forward(840)

    right(90)

    forward(300)

    end_fill()

    setheading(0)

    fillcolor(0,191,255)

    begin_fill()

    forward(840)

    left(90)

    forward(600)

    left(90)

    forward(840)

    left(90)

    forward(600)

    end_fill()

  

def cloude1(x, y):

    """画云"""

    penup()

    goto(x,y)

    setheading(90)

    fillcolor(255,255,255)

    begin_fill()

    a = 0.4

    for i in range(120):

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

            a = a + 0.14

            # 向左转3度

            left(3)

            # 向前走

            forward(a)

        else:

            a = a - 0.15

            left(3)

            forward(a)

    end_fill()

  

def cloude2(x, y):

    """画云"""

    penup()

    goto(x,y)

    setheading(90)

    fillcolor(255,255,255)

    begin_fill()

    a = 0.4

    for i in range(120):

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

            a = a + 0.15

            # 向左转3度

            left(3)

            # 向前走

            forward(a)

        else:

            a = a - 0.13

            left(3)

            forward(a)

    end_fill()

  

def setting():

    """设置参数"""

    pensize(5)

    # 隐藏海龟

    hideturtle()

    colormode(255)

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

    setup(840, 700)

    speed(10)

  

  

def main():

    """主函数"""

     

    setting()

    backg(0)

    body(105,-20)

    nose(-100, 100)

    head(-69, 167)

    ears(0, 160)

    eyes(0, 140)

    cheek(80, 10)

    mouth(-20, 30)

    feet1(10,-150)

    feet2(90,-150)

    tail(130,-110)

    cloude1(-200,200)

    cloude2(300,300)

    done()

  

  

if __name__ == '__main__':

    main()

以上就是Python怎么利用Turtle绘制哆啦A梦和小猪佩奇的详细内容


标签:  python 免费教程 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。