快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

颜色循环函数Python 颜色的函数

python处理图片数据?

生成一张纯色的图片

为揭西等地区用户提供了全套网页设计制作服务,及揭西网站建设行业解决方案。主营业务为网站设计制作、成都做网站、揭西网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

先设置图片的颜色,接着利用Image模块的new方法新生成一张图片,png格式的图片需要设置成rgba,类似的还有rgb,L(灰度图等),尺寸设定为640,480,这个可以根据自己的情况设定,颜色同样如此。

批量生成图片

上面生成了一张图片,那要生成十张图片呢,这种步骤一样,只是颜色改变的,利用循环就可以解决。首先创建一个颜色列表,把要生成的图片颜色放进去。接着循环获取不同的颜色,保存的时候利用字符串拼接的方法改变图片的名字。

本地生成的图片

封装成函数

前面的方法已经可以批量生成图片了,为了通用性强一点,我们可以封装成函数,把哪些可以改变的参数单独抽离出来。尺寸也同样,使用的时候,可以根据自己的需要定义颜色列表和尺寸。当然还有加一些提示用语和报错兼容性,这里就不讲了。

本地生成的图片

Python-彩色蟒蛇绘制

要用到turtle库中的函数,

turtle库是一个绘制图像的函数库,横轴为x轴,纵轴为y轴

def 表示用户自定义函数,drawsnake为函数名,()中为函数参数

定义颜色

循环 len 次,i用来计数

pencolor() 函数,改变画笔颜色,参数为颜色

circle(  ,  )   函数,画圆,第一个参数为半径,正数表示在左侧,负数表示在右侧,第二个参数为圆形的弧度值。

fd()函数,画直线,参数为直线长度

fd()函数,画直线,参数为直线长度

用户自定义函数  main()

setup (  , , , ) 函数,启动图形窗口,四个参数分别是,宽度,高度,窗口左上角在屏幕中的x坐标和y坐标。

定义画笔宽度

pensize() 函数,画笔宽度,30像素

seth() 函数,画笔启动时的方向,其中参数,0表示东,顺逆时针方向度数递增。

调用drawsnake函数

调用main函数

python入门——turtle库的使用

[Turtle]库的使用

打开窗口:turtle.setup(650,350,200,200)

窗口的大小:width:650 height:350

窗口的位置:在屏幕的(200,200),默认情况下在屏幕的中心位置

画笔抬起,不留下痕迹:turtle.penup()

改变画笔的位置:turtle.fd(-250) 可用turtle.forward(-250)代替

画笔向后倒退250,默认情况下在窗口的正中心位置

画笔落下,留下痕迹:turtle.down()

改变画笔的粗细:turtle.pensize(25)

改变画笔的颜色:turtle.pencolor(“purple”)

改变画笔的前进方向:turtle.seth(-40)可用turtle.heading(-40)代替

画笔此时指向-40°的方向

循环:range(4)函数

参数是几就循环几次

for i in range(4):i的范维是[0,4)

画圆弧:turtle.circle(40,80); turtle.circle(-40,80)

40是圆弧的半径,代表以画笔所在位置的左侧距离40的地方为圆心

-40代表画笔所在位置右侧距离40的地方为圆心

80是代表弧度80的圆弧

画直线:turtle.fd(40)

画笔向前移动40

因为画笔已经落下,所以屏幕中有画笔的痕迹

画笔停止绘制,但窗口不关闭:turtle.done()

程序运行结果:

总结用python绘制正多边形的规律?

如果能够找到规律,可以让代码变得更简单。上述代码中其实就是调用circle()函数四次,每次传入参数不同而已。

我们可以加入循环,循环就是重复不停地做相同的事情;再找到循环变量和画圆参数之间的规律即可。

第一个圆的半径为50,每次按15的节奏递减,直到绘制完半径为5的圆。这样就可以使用range()函数,传入如下参数:range(50,0,-15)。

或者由小到大绘制,传入这样的参数也可以:range(5,51,15)。

还可以这样:循环四次,循环变量i依次为0、1、2、3,再在绘制圆的过程中构造递减的表达式:100/2-i*15。

分析这个表达式,当i等于0时,结果为50,绘制半径为50的圆;当i等于1时,结果为35,绘制半径为35的圆……正好符合题目要求的参数值。

【扩展】思考如何绘制以坐标原点为中心的同心圆呢?

仔细观察画笔绘制圆的轨迹,可发现:默认小海龟从坐标原点出发,逆时针旋转一圈画圆;然后,再回到起始点。

所以,绘制同心圆。我们需要将画笔向下移动一定的距离,即改变y的坐标,x坐标保持不变为0。参考代码如下:

循环体内,每次需要抬笔和落笔功能。

02

案例二:绘制一个正多边形

绘制正多边形有这样一个结论:用360°去除以绘制的边数,即可得到旋转角度。

比如:正三角形的旋转角度(360/3=120°)、正四边形的旋转角度(360/4=90°)、正八边形的旋转角度(360/8=45°)。其他以此类推。

那么,我们要绘制一个正八边形呢?

使用循环结构,循环八次。每次前移一定距离,再旋转(360/边数)的角度,这里旋转的就是45°角。参考代码如下:

有了这样的结论,其他的正多边形都可以信手拈来,小菜一碟了。只需要稍微改几个参数即可。

03

案例三:绘制由多种颜色组成的正螺旋线

比如,这样的图形:

这是由八种颜色组成的正八边形螺旋线结构图,颜色依次为:红(red)、绿(green)、蓝(blue)、黄(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八种。

绘制思路:

首先,需要创建一个颜色列表list,含有八种颜色元素。

第二,前移一定距离,这个距离值是由小到大逐级递增的过程。

第三,旋转一定角度,可参照案例二的结论。

最后,考虑画笔的颜色,每8次(边数)为一个周期循环颜色列表。

参考代码如下:

其他的正螺旋线,也是如此规律。

【扩展】如果是有一定旋转角度的螺旋线呢?比如,这样的图形:

解题思路:只需要在正螺旋线的基础上,让旋转角度多偏移1-2°即可。修改上述案例中最后一行的代码:

在python里,如何实现点击开始按钮,开始慢慢在不同位置出现不同颜色的不同图形?

示例代码

# 导入Tkinter模块

from tkinter import *

# 创建一个窗口

window = Tk()

# 定义一个函数,用来生成图形

def generate_shape():

# 使用随机数生成不同的图形和颜色

shape = random.choice(["circle", "square", "triangle"])

color = random.choice(["red", "green", "blue"])

# 使用随机数生成不同的位置

x = random.randint(0, 200)

y = random.randint(0, 200)

# 在窗口中绘制图形

if shape == "circle":

# 绘制圆形

canvas.create_oval(x, y, x + 50, y + 50, fill=color)

elif shape == "square":

# 绘制正方形

canvas.create_rectangle(x, y, x + 50, y + 50, fill=color)

else:

# 绘制三角形

points = [x, y, x + 50, y + 50, x + 25, y + 75]

canvas.create_polygon(points, fill=color)

# 创建一个画布

canvas = Canvas(window, width=200, height=200)

canvas.pack()

# 创建一个按钮

button = Button(window, text="Start", command=generate_shape)

button.pack()

# 进入消息循环

window.mainloop()


标题名称:颜色循环函数Python 颜色的函数
分享地址:http://6mz.cn/article/hpecdc.html

其他资讯