利用Python绘制特定直线

一、实验目的

设计一个全白的图片,并在其间绘制两个点(24,26)、(140,624)并绘制一条以这两点为端点的直线,且显示出图形。要求,不能使用现成的画直线函数

二、设计方案

1、引入PIL中的Image模块,使用Image.new()创建新的空白图片
2、利用putpixel()函数放置一个黑色像素(RGB中0代表黑色,255代表白色)
3、计算出两点间直线的解析式,并利用以y轴绘制x轴的方式绘制直线(y轴从y1到y2,利用解析式计算相应的x值,并利用获取像素点函数改变像素点颜色,从而形成一条直线

三、详细代码

from PIL import Image     #引入Image函数模块
g=Image.new('RGB',(650,650),color='white')  #建立白色背景图片
g.putpixel((24,26),0)     #首先放置起始点
k=(624-26)/(140-24)       # 计算直线斜率
b=624-k*140               #计算直线截距
for i in range(26,625):   #利用循环绘制点,利用y绘制x
    x=int((i-b)/k)        #利用直线放程计算相应的x轴坐标
g.putpixel((x,i),0)       #获取该点的像素,将其改为黑色,绘制点
g.show()                  #展示最终的图案

四、实验结果

在这里插入图片描述

五、实验体会

使用x轴画y和使用y轴画x是两种不同的方法。虽然在数学上一样,但是,像素是图形显示的最小单元,所以像素位置必为整数,所以其实我们求得点并非真正直线上的点,而是一个近似的点。所以,我们一般利用跨度大的点去绘制跨度小的点。否则,将会形成一条点装线,而非一条真正的线
举例:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值