皮卡丘python turtle海龟绘图(电力球版)附源代码

您所在的位置:网站首页 python反转 皮卡丘python turtle海龟绘图(电力球版)附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

2023-07-07 02:13| 来源: 网络整理| 查看: 265

皮卡丘python turtle海龟绘图(电力球版)附源代码

本文目录:

一、皮卡丘python turtle海龟成品效果图

二、皮卡丘背景介绍

三、皮卡丘卡角色形象

四、愿你拥有一只皮卡丘

五、Python 海龟画图主要方法

(1)海龟画图的主要步骤

(2)海龟画图的坐标体系

(3)海龟画图的一些建议

六、海龟画图常用命令

1、初始化

2、画笔属性

3、画笔运动命令

4、 画笔颜色控制命令

5、全局控制命令

七、我的皮卡丘python turtle海龟绘图源代码

前言:

    前段时间,【草莓熊python turtle绘图代码】一文弄得我心情多少有点灰灰,此版草莓熊是我应某网友请求画的,当时只是想找个地方放代码给他,没想到访问量使用量会有那么多,抖音b站等等到处都是我画的草莓熊, 就连CSDN都有几个盗我代码(他们删除了作者版权信息部分)当成自己原创,还都上了CSDN首页热门推荐。。。

    更有甚者,居然有人拿我草莓熊代码来卖钱!!!请记住,不要下载和购买这种代码(包括可执行的exe文件,小心代码被篡改有病毒) 

    我的代码是完整源代码,你从我博客拷贝代码后本机运行就能看到和我博客上同样的运行效果(只要我网络没有被全h)。我乐意分享,不需要你去关注任何账号,不强求任何人成为我的粉丝,也不需要你以任何形式购买源代码,只要你是个人学习用,或者通过我的代码能带给你身边的朋友开心快乐,我愿意为此尽一分力。

    另,请尊重作者原创的不易,转载请注明来源。代码里请保留作者相关的版权信息。这些不会影响代码展示效果。

一、皮卡丘python turtle海龟成品效果图

  当你知道得太多,当你独自清醒,当弱小善良的你无法逃脱某种无法言说的。。。时,当你孤单无助地面对强敌时,你会想起谁?谁会是那个信得过的战友?或许小精灵皮卡丘会是其中一个。皮卡丘总是能让自己保持快乐,也给人带来欢乐。它也会有情绪低落的时候,但它不会让这种情绪把自己打倒。   它并不厉害,但即使失败了,小小的它也会再度勇敢站起来,保护自己的朋友们。当有人难过时,它会在一旁暖心鼓励。皮卡丘让你相信它也同样爱着你。

  虽然现实世界没有真的小精灵皮卡丘,但我们可以画一只,让它可爱的样子温暖每一个你。逆境清醒:愿你们都拥有一只会永远爱你的皮卡丘!

  这次我用python turtle海龟绘图皮卡丘,效果如下:

  没有底图的效果如下:

    我会陆续用python turtle海龟绘图画一系列的皮卡丘动画,如果喜欢皮卡丘,可以多留意一下本专栏。

    请尊重作者原创的不易,转载请注明来源。代码里请保留作者相关的版权信息。这些不会影响代码展示效果。

二、皮卡丘背景介绍

  皮卡丘是生活中常见的卡通形象,没玩过游戏、没看过动漫,大抵也知道它的存在。

  1996年,游戏《宝可梦 红/绿》在日本首次发行,玩家在虚拟世界里捕捉、训练小精灵们,和它们一起不断战斗和挑战。一众小精灵里最火的,当属皮卡丘,皮卡丘成为了宝可梦世界的主角,和主人公小智一路探险世界。(皮卡丘简介配图来源于网络,版权属原作者和版权公司,此处仅作介绍人物绘图前形象介绍用途)

中文名皮卡丘外文名ピカチュウ  Pikachu别    名比卡超、比卡丘、皮卡超身    高0.4 m体    重6 kg属    性电属性鼠宝可梦特    性静电。隐藏特性:避雷针设计者西田敦子(皮卡丘);James Turner(超极巨皮卡丘)

三、皮卡丘卡角色形象

  Pikachu 里 pika 是电火花的响声,chu 则是老鼠声音的拟声,插画师西田敦子在创作的时候,则是以松鼠为原型。参考了松鼠囤果实时的样子为皮卡丘画上了圆圆的脸——“仓鼠囤食物时整个身体都会变圆,但松鼠就只有脸颊会圆起来”。

  皮卡丘擅长放电,是一只电气鼠,全身的皮毛都是黄色的,背上有两条褐色的条纹,尾巴是像锯齿状的闪电,与身体相接的部分也有一片褐色的皮毛。它有小小的嘴巴以及黑色的眼睛,脸颊上有着红色的电力袋,长长的耳朵尖端是黑色的。它的前爪短而粗,有五趾,后爪则只有三趾。越是能制造出强大电流的皮卡丘,脸颊上的囊就越柔软,同时也越有伸展性。由于它脸颊上的袋子中储存了电能,触摸了之后会觉得麻麻的。它跑动的时候是用四条腿着地快速地奔跑,但是更多时候它是站立着的并用两只后脚走路。   自第四世代起,皮卡丘开始具有性别差异,雄性的皮卡丘的尾巴末端平整,雌性皮卡丘的尾巴末端为心形。

  它通过睡觉的方式给自己充电,当遇到危险时就会放电。它还会将尾巴竖起来,感知周围是否安全。皮卡丘害羞内向,未经允许触碰它就会被它电到。皮卡丘喜欢番茄酱,还喜欢吃苹果和浆果,遇到其他新的食物也一定会尝尝。

四、愿你拥有一只皮卡丘

  一众小精灵里,皮卡丘不是最厉害的那一个。皮卡丘总是能让自己保持快乐,也给人带来欢乐。它也会有情绪低落的时候,但它不会让这种情绪把自己打倒。   它没有绝对厉害,也有很多的弱点。但即使在战斗里失败了,小小的它也会再度勇敢站起来,保护自己的朋友们。   一句“去吧,皮卡丘!”就足够让你对它充满信任。

  当有人难过时,它会在一旁暖心鼓励。“之所以爱皮卡丘,是因为皮卡丘有很多时刻让你相信它也爱着你。”

  皮卡丘和小智之间坚定而美好的友情也是吸引观众的另一个主要原因。他们是平日里一起幼稚玩闹的好伙伴。也会在需要的时候,给彼此一个大大的拥抱。两个人在一起,就可以勇敢地对抗冒险旅途中的一切危机。

五、Python 海龟画图主要方法

  海龟绘图(turtle库)是python的内部模块,使用前导入即可 import turtle 库

  海龟有几个关键属性:方向、位置和画笔属性

(1)海龟画图的主要步骤

  通常我们绘图时

  第一步,导入海龟库和绘图时可能用到的一些库,例如随机函数库random,numpy库等等,具体要看实际情况。

  使用方法:

  import turtle

  import random

  

  第二步,使用setup()设置画布尺寸

  画布(canvas):

  画布就是我们用于绘图的区域, 我们可以设置它的大小和初始位置

  设置画布大小:

  1. turtle.screensize(canvwidth=None, canvheight=None, bg=None)

  参数分别为画布的宽(单位像素), 高, 背景颜色

  turtle.screensize()默认大小(400, 300)

  例如:turtle.screensize(800, 600, “black”)

  2. turtle.setup(width=数值, height=数值, startx=None, starty=None)

  setup()设置窗体大小及位置。

  参数:

  width, height:为整数时, 表示像素;

  width, height:为小数时, 表示占据电脑屏幕的比例

  turtle.setup(width=0.5, height=0.85, startx=None, starty=None)

  turtle.setup(width=0.6, height=0.6)

  (startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

  如:turtle.setup(width=800, height=800, startx=100, starty=100)

  第三步,设置画笔

  使用Pen()设定海龟画图对象,即画笔:turtle.Pen()

  t = turtle.Pen()

  使用t来代替turtle.Pen()。一劳永逸的做法,可简化输入代码。

(2)海龟画图的坐标体系

  代码执行后就建立了画布,屏幕中间可以看见海龟 (箭头arrow)

  在海龟绘图中,海龟的起点即画布中央为 (0,0),移动单位是像素 (pixel),海龟的头部是x轴方向,为0度。

    turtle绘图中, 就是使用位置方向描述海龟(画笔)的状态

  想象绘图区有一只机器海龟,起始位置在 x-y 平面的 (0, 0) 点。先执行 import turtle,再执行 turtle.forward(15),它将(在屏幕上)朝所面对的 x 轴正方向前进 15 像素,随着它的移动画出一条线段。再执行 turtle.right(25),它将原地右转 25 度。

  描述海龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向),

  在画图过程中,如果没明确的指定坐标和角度,那此时所有的角度和位置都是相对的(相对于当前海龟的位置和角度)。

画月饼常会用到画圆:turtle.circle(radius, extent=None, steps=None)

参数:

  • radius -- 一个数值

  • extent -- 一个数值 (或 None)

  • steps -- 一个整型数 (或 None)

  绘制一个 radius 指定半径的圆。

  圆心在海龟左边 radius 个单位;

  extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent* 则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向。

  最终海龟的朝向会依据 extent 的值而改变。

  圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定。

  如果未指定边数则会自动确定。此方法也可用来绘制正多边形。

  画一个半径为100的圆形,circle(100),注意画完后圆心位置不在原点。

(3)海龟画图的一些建议

      a、使用海龟绘图可以编写重复执行简单动作的程序画出精细复杂的形状。

from turtle import *

speed(0)

color('blue', '#87CEFA')

begin_fill()

while True:

    forward(200)

    left(170)

    if abs(pos()) < 1:

        break

end_fill()

将文字排成圆形:

import turtle as t

text="祝大家中秋节快乐"

for i in text:

    t.write(i,align="center",font=("黑体",20,"normal"))

    t.right(360/len(text))

    t.penup()   

    t.forward(40)

t.hideturtle()

t.done()

  b、隐藏画笔;设置速度,可以画得更快些;

  c、海龟绘图时的颜色代码可以参考下面链接

色彩颜色对照表系列(1~5)300种颜色,(16进制、RGB、CMYK、HSV、中英文名)

    挑选出自己喜欢的颜色,拷贝相应的颜色代码值放入海龟颜色设置中。

六、海龟画图常用命令

1、初始化

代码命令

作 用

import turtle

导入海龟库

t = turtle.Pen()

从工具箱子获取海龟画笔

turtle.setup()

画布设置(尺寸,距离)

turtle.bgcolor("black")

画布背景色(例如黑色)

turtle.title(title标题)   设置画布标题

screensize( )  

设置画布窗口的宽度、高度和背昱颜色

2、画笔属性

代码命令

作 用

turtle.pensize(width数字值)

画笔粗细,设置画笔线条的粗细为指定大小

turtle.color('画笔颜色')

画笔颜色   字符串"green", "red" 或者 RGB 3元组

turtle.speed(0)

设置画笔移动速度

画笔绘制的速度范围[0,10]整数,数字越大画笔速度越慢。值1~9,0最快t.speed(0)

turtle.hideturtle()

隐藏海龟图标(隐藏画笔箭头)

turtle.showturtle()

显示海龟图标(显示画笔箭头)

3、画笔运动命令

代码命令

作 用

turtle.forward()

fd(distance)         

向前移动,沿着当前方向前进指定距离

bk(distance)

向后移动,沿着当前相反方向后退指定距离

turtle.right(旋转角度)

画笔右转,turtle. right (90)海龟方向向右转90°

turtle.left(旋转角度)

画笔左转,turtle.left(90)海龟方向向左转90°

turtle.penup()

提笔,抬起画笔

turtle.pendown()

落笔,落下画笔

turtle.goto(x,y横,纵)

控制画笔移动到指定位置,海龟移动到(x,y)位置

turtle.setx(x)

海龟的x坐标移动到指定位置,纵坐标不变

turtle.sety(y)

海龟的y坐标移动到指定位置,横坐标不变

turtle.circle(指定半径, 弧度)

画圆,绘制一个指定半径和角度e的圆或弧线

turtle.dot(半径,color)

画一个圆点(实心)绘制一个指定半径和颜色的圆点

turtle.setheading(angle指向角度)

turtle.seth(angle)

设置当前朝向为angle角度。画笔的指向,右是0,逆时针0-360递增

turtle.home()

设置当前画笔位置为原点,朝向东(默认值)

4、 画笔颜色控制命令

代码命令

作 用

turtle.fillcolor('颜色')

设置 填充颜色

turtle.color(color1, color2)

设置 画笔颜色为color1,填充颜色为color2

可以使用颜色名称或十六进制RGB代码

turtle.begin_fill()

开始填充颜色

turtle.end_fill()

填充完成,结束填充

turtle. pencolor(‘颜色’)

设置画笔颜色

turtle. filling()

返回填充的状态,True为填充。False为未填充

5、全局控制命令

代码命令

作 用

turtle.clear()

清空turtle窗口,但是turtle的位置和状态不会改变(当前窗口清空,当前画笔位置不改变)

turtle.reset()

清空turtle窗口,重置turtle状态为起始状态(当前窗口清空,画笔位置等状态为初始时的默认值)

turtle.undo()

撤销上一个turtle动作(撤销画笔的最后一步动作)

turtle.isvisible()

返回当前turtle是否可见

turtle.done()

关闭画笔,结束绘制,但画面保留

              

代码命令

作 用

t.write("文本" ,align="center",font=("黑体",20,"normal"))

写文本,可指定显示字体,字体大小等align(可选):left,right,center;font(可选):字体名称,字体大小,字体类型(normal,bold,italic)

七、我的皮卡丘python turtle海龟绘图源代码 #-*- coding: UTF-8 -*- import turtle as t """ ================================================= @Project ->Adversity Awake 皮卡丘系列 @类别 : 皮卡丘->皮卡丘之1 @Author : 逆境清醒 @Date : 2022/10/26 23:02 @Desc :https://blog.csdn.net/weixin_69553582 ================================================= """ # 设置背景颜色,窗口位置以及大小 t.colormode(255)# 颜色模式 t.speed(0) t.screensize(800,800,"white")#画布大小背景颜色 t.setup(width=800, height=800,startx=None, starty=None)#绘图窗口的大小和起始坐标 #t.bgpic("di_2_800.gif") t.title("逆境清醒皮卡丘!")#设置绘图窗口的标题 t.resizemode('noresize') #大小调整模式:auto,user,noresize t.tracer(1) t.hideturtle() def mlingpen(x, y): t.penup() t.goto(x, y) t.pendown() def mlingpkqface(x,y): mlingpen(x, y) t.pensize(3) t.pencolor("#923E24") t.fillcolor('#FBD624') t.begin_fill() t.seth(40) t.circle(100, 30) t.circle(40, 60) t.right(30) t.circle(160, 20) t.seth(-20) t.circle(300, 30) t.circle(30, 50) t.left(85) t.circle(300,85) t.left(1) t.circle(300,35) t.circle(30, 40) t.seth(40) t.circle(300,32) t.right(150) t.circle(100, 30) t.circle(30, 60) t.left(180) t.circle(100, 60) t.right(30) t.circle(100, 60) t.circle(70, 120) t.circle(-120, 80) t.circle(35,140) t.right(60) t.circle(300,23) t.right(60) t.fd(10) t.left(90) t.fd(10) t.right(60) t.fd(10) t.left(90) t.circle(30,23) t.right(60) t.fd(10) t.left(90) t.circle(90,80) t.right(170) t.circle(70,65) t.right(20) t.circle(-150,20) t.circle(20,90) t.right(200) t.circle(50,50) t.goto(x, y) t.end_fill() t.penup() t.goto(-72, -25) t.pendown() t.pencolor("#923E24") t.fillcolor("#923E24") t.begin_fill() t.seth(-6) t.circle(120, 30) t.right(160) t.circle(-50, 65) t.end_fill() mlingpen(209.21,135.02) t.pensize(3) t.pencolor("#000000") t.fillcolor('#000000') t.seth(145) t.begin_fill() t.circle(300,12) t.left(50) t.circle(60,59) t.left(88) t.circle(190,30) t.end_fill() mlingpen(-253.14,-105.48) t.pensize(3) t.pencolor("#000000") t.fillcolor('#000000') t.seth(40) t.begin_fill() t.circle(300,12) t.left(50) t.circle(60,57) t.left(88) t.circle(190,30) t.end_fill() def mlingpkqyingyinying(): t.penup() t.seth(0) t.pensize(1) t.pencolor("#DDA120") t.fillcolor('#DDA120') t.begin_fill() t.left(220) mlingpen(-179,-90) t.circle(97, 60) t.circle(69, 122) t.circle(-120, 80) t.circle(33,135) t.left(90) t.circle(-25,150) t.left(175) t.circle(-60,140) t.left(175) t.circle(-60,100) t.right(5) t.circle(85,60) t.goto(-179,-90) t.end_fill() t.penup() t.penup() t.seth(0) mlingpen(115.87,-170.16) t.pencolor("#eca9a9") t.fillcolor('#eca9a9') t.begin_fill() t.left(45) t.circle(300,20) t.circle(8,155) t.left(3) t.circle(300,20) t.circle(9,155) t.goto(115.87,-170.16) t.end_fill() t.penup() def mlingpkqjiao(): mlingpen(-215,-160) t.pensize(3) t.pencolor("#FBD624") t.fillcolor('#FBD624') t.begin_fill() t.seth(-30) t.circle(30,70) t.left(20) t.circle(-50,150) t.circle(10,160) t.circle(80,80) t.left(5) t.circle(75,110) t.goto(-210,-160) t.penup() t.end_fill() mlingpen(-149,-191) t.pensize(3) t.pencolor("#923E24") t.fillcolor('#FBD624') t.begin_fill() t.seth(0) t.left(40) t.circle(148,55) t.right(38) t.fd(20) t.left(128) t.fd(15) t.right(88) t.fd(15) t.left(128) t.fd(15) t.right(88) t.fd(15) t.left(128) t.fd(15) t.right(45) t.circle(130,60) t.circle(23,75) t.end_fill() mlingpen(-149,-180) t.pensize(3) t.pencolor("#eca9a9") t.fillcolor('#eca9a9') t.begin_fill() t.seth(0) t.left(45) t.circle(148,45) t.left(45) t.circle(15,110) t.right(18) t.circle(130,40) t.circle(17,100) t.end_fill() def mlingpkqcap(): mlingpen(-210,95) t.pensize(4) t.pencolor("#000000") t.fillcolor('#CD0000') t.begin_fill() t.seth(290) t.circle(45,80) t.circle(345,30) t.circle(45,90) t.left(2) t.fd(120) t.left(45) t.circle(200,60) t.goto(-210,95) t.end_fill() t.left(175) t.circle(-290,50) t.pencolor("#000000") t.pensize(3) t.pencolor("#000000") t.fillcolor('#ffffff') mlingpen(-160,272) t.begin_fill() t.goto(-80,260) t.goto(-45,200) t.left(186) t.circle(230,41) t.goto(-210,200) t.goto(-180,270) t.goto(-160,272) t.end_fill() mlingpen(-175,265) t.seth(0) t.begin_fill() t.circle(13) t.end_fill() t.penup() mlingpen(-125,222) t.pensize(7) t.pencolor("#6ba65a") t.goto(-140,225) t.pensize(9) t.goto(-155,170) t.left(45) t.circle(-130,30) t.pensize(3) mlingpen(-205,96) t.pensize(3) t.pencolor("#ffffff") t.seth(286) t.circle(39,74) t.left(9) t.circle(331,32) t.circle(45,80) t.pensize(3) def mlingpkqeye(): t.color("#000000","#702c00") mlingpen(-110, 24) t.begin_fill() t.seth(0) t.circle(24) t.end_fill() mlingpen(-110,31) t.color("black","black") t.begin_fill() t.circle(20) t.end_fill() t.color("white", "white") mlingpen(-105, 53) t.begin_fill() t.circle(8) t.end_fill() t.color("#000000","#702c00") mlingpen(0,62) t.begin_fill() t.seth(0) t.circle(24) t.end_fill() mlingpen(2,70) t.color("black","black") t.begin_fill() t.circle(20) t.end_fill() mlingpen(5,92) t.color("white", "white") t.begin_fill() t.circle(8) t.penup() t.end_fill() t.hideturtle() def mlingpkqcheek1(): t.color("#9E4406", "#FE2C21") t.penup() t.goto(-130, -50) t.pendown() t.begin_fill() t.setheading(0) t.circle(27) t.end_fill() t.color("#9E4406", "#FE2C21") t.penup() mlingpen(53, -20) t.pendown() t.begin_fill() t.setheading(0) t.circle(27) t.end_fill() def mlingweiba(x,y): mlingpen(x, y) t.pensize(3) t.pencolor("#923E24") t.fillcolor('#CD853F') t.begin_fill() t.seth(40) t.fd(200) t.seth(-80) t.fd(150) t.seth(210) t.fd(150) t.left(90) t.fd(100) t.right(95) t.fd(100) t.left(110) t.fd(70) t.right(110) t.fd(80) t.left(110) t.fd(30) t.right(110) t.fd(32) t.right(106) t.circle(100, 25) t.right(15) t.circle(-300, 2) t.seth(30) t.fd(40) t.left(100) t.fd(70) t.right(100) t.fd(80) t.left(100) t.fd(46) t.seth(66) t.circle(200, 38) t.right(10) t.fd(10) t.end_fill() mlingpen(202,250) t.pensize(3) t.pencolor("#923E24") t.fillcolor('#FBD624') t.begin_fill() t.seth(220) t.fd(120) t.circle(75, 120) t.left(50) t.fd(110) t.end_fill() def mlingpkqcheek2(x, y, fx): mlingpen(x, y) t.seth(fx) t.pencolor("#840101") t.fillcolor('#CD0000') t.begin_fill() n = 1.8 for i in range(120): if 0


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3