利用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()                  #展示最终的图案

四、实验结果

利用Python绘制特定直线_第1张图片

五、实验体会

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

你可能感兴趣的:(计算机图形学,python,开发语言)