python画无角正方形(python绘制无角矩形)

http://www.itjxue.com  2023-03-17 16:54  来源:未知  点击次数: 

怎样用python语言的turle绘制一个边长200的正方形?

import turtle as t

import time

for i in range(4):

t.pensize(5)

t.pendown()

t.fd(200)

t.pensize(5)

t.pencolor("black")

t.right(90)

time.sleep(5)

望采纳

python画正方形的函数

使用turtle实现正方形的绘制,定义形参n为正方形的边长。具体代码如下,望采纳。

python绘制正方形

python求解

使用方式不对,turtle.Turtle是RawTurtle的子类,生成对象应该加(),正解应该是:

之所以出现你这几个错误的原因,也可以理解,forward()函数或者说fd函数的定义里是有两个参数的,(self,distance),self是默认调用这个方法的类对象自身,所以只需要传入一个distance参数即可,但是你在这个过程中没有正确的创建类对象,你可以比对bob=turtle.Turtle和bob=turtle.Turtle(),分别打印出bob查看。因此函数自然就把你传入的100作为self参数了。

那么为什么不加括号却不报错等等一系列追问,这就涉及到类的实例化的问题了,扯远了。反正你改过来就行了。

??【Python从入门到精通】(二十七)更进一步的了解Pillow吧!

本文是接上一篇 ??【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手?? 进一步介绍Pillow库的使用, 本文将重点介绍一些高级特性:比如如何利用Pillow画图形(圆形,正方形),介绍通过Pillow库给图片添加水印;同时对上一篇文章未介绍的常用知识点进行补充说明。希望对读者朋友们有所帮助。

上一篇文章已经介绍了Image模块,但是介绍的还不够全面,例如如何从网页中读取图片没有介绍到,如何裁剪图片都没有介绍到。

读取网页中的图片的基本实现方式是:首先利用requests库读取当前图片链接的内容,接着将内容转成二进制数据,在通过open方法将该二进制数据,最后通过save方法进行保存。

读取结果是:

通过crop方法可以从图片中裁剪出一个指定大小的区域。裁取的区域范围是 (left, upper, right, lower) 比如从某个宽高都是400的图片中裁剪一个是宽高都是100的正方形区域,只需要指定裁剪区域的坐标是: (0, 0, 100, 100)

有裁剪还有一个方法就是重新设置图片大小的方法 resize,比如将前面400 400的图片 修改成 300 200,只需要调用resize方法

通过 convert方法进行图片模式的转换

前面介绍的ImageDraw库,只是介绍了利用它来向图片写入文本,其实ImageDraw模块还有一个更有用的途径,就是可以通过它来画各种图形。

首先创建一个600*600的画布。然后再画布中画出一个正方形,画直线的方法是 line方法。

ImageDraw.line(xy, fill=None, width=0, joint=None)

在xy的坐标之间画一条直线

xy-- 在两个坐标点之间画一条直线,坐标点的传入方式是[(x, y), (x, y), ...]或者[x, y, x, y, ...]

fill-- 直线的颜色

width-- 直线的宽度

画一个边框宽度为2px,颜色为蓝色的,面积为400*400的正方形。

ImageDraw.arc(xy, start, end, fill=None, width=0)

在给定的区域范围内,从开始角到结束角之间绘制一条圆弧

xy-- 定义边界框的两个点,传入的格式是[ (x0, y0), (x1, y1)] 或者 [x0, y0, x1, y1] ,其中 x1=x0,y1=y0

start -- 起始角度,以度为单位,从3点钟开始顺时针增加

end-- 结束角度,以度为单位

fill-- 弧线的颜色

width--弧线的宽度

这里就是画了一个半圆,如果结束角度是360度的话则就会画一个完整的圆。

画圆通过ImageDraw.ellipse(xy, fill=None, outline=None, width=1) 方法,该方法可以画出一个给定范围的圆

xy-- 定义边界框的两个点,传入的格式是[ (x0, y0), (x1, y1)] 或者 [x0, y0, x1, y1] ,其中 x1=x0,y1=y0

outline-- 轮廓的颜色

fill --- 填充颜色

width-- 轮廓的宽度

ImageDraw.chord(xy, start, end, fill=None, outline=None, width=1) 方法用来画半圆,跟arc()方法不同的是它会用直线将起始点和结束点连接起来

xy-- 定义边界框的两个点,传入的格式是[ (x0, y0), (x1, y1)] 或者 [x0, y0, x1, y1] ,其中 x1=x0,y1=y0

outline-- 轮廓的颜色

fill --- 填充颜色

width-- 轮廓的宽度

ImageDraw.pieslice(xy, start, end, fill=None, outline=None, width=1)

类似于arc()方法,不过他会在端点和圆点之间画直线

xy-- 定义边界框的两个点,传入的格式是[ (x0, y0), (x1, y1)] 或者 [x0, y0, x1, y1] ,其中 x1=x0,y1=y0

start -- 起始角度,以度为单位,从3点钟开始顺时针增加

end-- 结束角度,以度为单位

fill-- 弧线的颜色

width--弧线的宽度

ImageDraw.rectangle(xy, fill=None, outline=None, width=1)

xy-- 在两个坐标点之间画一条直线,坐标点的传入方式是[(x, y), (x, y), ...]或者[x, y, x, y, ...]

outline-- 轮廓的颜色

fill-- 填充的颜色

width-- 轮廓线的宽度

ImageDraw.rounded_rectangle(xy, radius=0, fill=None, outline=None, width=1) 该方法可以画一个圆角矩形

xy-- 在两个坐标点之间画一条直线,坐标点的传入方式是[(x, y), (x, y), ...]或者[x, y, x, y, ...]

radius-- 角的半径

outline-- 轮廓的颜色

fill-- 填充的颜色

width-- 轮廓线的宽度

这里有个问题,就是画好的图形如何从Image中扣出来呢?

ImageEnhance模块主要是用于设置图片的颜色对比度亮度锐度等啥的,增强图像。

原始图像

ImageFilter模块主要用于对图像进行过滤,增强边缘,模糊处理,该模块的使用方式是 im.filter(ImageFilter) 。

其中ImageFilter按照需求传入指定的过滤值。

下面一个个试下效果

4.边缘增强

ImageGrab模块主要用于对屏幕进行截图,通过grab方法进行截取,如果不传入任何参数则表示全屏幕截图,否则是截取指定区域的图像。其中box格式是:(x1,x2,y1,y2)

利用Pillow库可以轻易的对图像增加水印

首先,用PIL的Image函数读取图片

接着,新建一张图(尺寸和原图一样)

然后,在新建的图象上用PIL的ImageDraw把字给画上去,字的颜色从原图处获取。

原图

添加文字后的效果图

本文详细介绍了Pillow库的使用,希望对读者朋友们有所帮助。

Pillow官方文档

需要获取源码的小伙伴可以关注下方的公众号,回复【python】

求教python中的turtle

简介:turtle是一个简单的绘图工具。它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令。

1.在文件头写上如下行,这能让我们在语句中插入中文

#-*- coding: utf-8 -*-

2.用import turtle导入turtle库

3.绘图窗口的原点(0,0)在正中间。默认情况下,海龟向正右方移动。

4.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令

(1)运动命令:

forward(d)

向前移动距离d代表距离

backward(d)

向后移动距离d代表距离

right(degree)

向右转动多少度

left(degree)

向左转动多少度

goto(x,y)

将画笔移动到坐标为(x,y)的位置

stamp()

绘制当前图形

speed(speed)

画笔绘制的速度范围[0,10]整数

(2)画笔控制命令:

down()

画笔落下,移动时绘制图形

up()

画笔抬起,移动时不绘制图形

setheading(degree)

海龟朝向,degree代表角度

reset()

恢复所有设置

pensize(width)

画笔的宽度

pencolor(colorstring)

画笔的颜色

fillcolor(colorstring)

绘制图形的填充颜色

fill(Ture)

fill(False)

circle(radius, extent)

绘制一个圆形,其中radius为半径,extent为度数,例如若extent为180,则画一个半圆;如要画一个圆形,可不必写第二个参数

5.几个例子

1)画一个边长为60的三角形

#-*- coding: utf-8 -*-

importturtle

a=60

turtle.forward(a)

turtle.left(120)

turtle.forward(a)

turtle.left(120)

turtle.forward(a)

turtle.left(120)

2)画一个边长为60的正方形,并填充为红色,边框为蓝色

#-*- coding: utf-8 -*-

importturtle

turtle.reset()

a= 60

turtle.fillcolor("red")

turtle.pencolor("blue")

turtle.pensize(10)

turtle.fill(True)

turtle.left(90)

turtle.forward(a)

turtle.left(90)

turtle.forward(a)

turtle.left(90)

turtle.forward(a)

turtle.left(90)

turtle.forward(a)

turtle.fill(False)

6.练习:

1)画一个五边形

2)画一个六边形

3)任意输入一个正整数m(=3),画一个多边形(m条边)

4)画一个五角星,如下所示,注意填充为红色

5)画一个中国象棋棋盘,如下图所示,其中汉字不必显示出来:

6)绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。注意根据实际效果调整圆形的大小和位置。

在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()

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章