python如何根据斜率和截距画直线

Python014

python如何根据斜率和截距画直线,第1张

# -*- coding: UTF-8 -*-

import matplotlib.pyplot as plt

import numpy as np

#生成x的等差数列0-10之间取100个数

x = np.linspace(0,10, 100)

#生成每个x对应的y

y = 0.5*x+3

#画直线

plt.plot(x, y, c='orange')

#画标题

plt.title("y=0.5x+3")

#显示

plt.show()

[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从入门到精通】(二十六)用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】