
Python
文章平均质量分 63
dalong10
这个作者很懒,什么都没留下…
展开
-
简书文章标题、链接的爬取
@绳系想爬取公众号上的文章标题,可惜我不会。 紧急恶补了一下爬取,试着写了一个小程序,可以爬取绳系的简书文章的标题和链接。记录一下过程。1、分析页面结构 可以发现需要爬取的文章在<li>这个标签下,<a>标签为标题和链接,<p>为文章摘要,下面还有作者名字、点赞数等等,这里主要需要获取标题、摘要以及文章链接即可。2、处理获取到的文本 爬虫爬下来的是整个页面的xml文本,需要找到我们所需要的东西还得经过处理才行,这里选择用xpath来处理,原创 2022-04-18 21:26:13 · 865 阅读 · 0 评论 -
Python天空颜色渐变
一、line方法ImageDraw.line(xy, fill=None, width=0, joint=None)xy:一组点的队列。形如[x1,y1,x2,y2] 或 [(x1,y1),(x2,y2),…]fill:线的颜色width:线宽joint:一系列线之间的连接类型。它可以是"curve", 用于圆边,或None二、天空颜色渐变 绘制出天空颜色渐变的效果。1、创建一个背景为远山颜色的画布2、从顶部开始画上半部分3、颜色插值,从天空颜色逐渐变为远山颜色。4、循环使原创 2022-02-11 16:21:28 · 2807 阅读 · 0 评论 -
Python颜色光谱单色效果图
参考资料:1、知乎《# 色彩空间中的 HSL、**HSV**、**HSB** 有什么区别?》 https://www.zhihu.com/question/22077462/answer/3425701402、童晶《Python趣味创意编程》第10章3、纯净天空的博客https://vimsky.com/examples/usage/python-pil-image-new-method.html一、HSV(HSB)颜色模型 HSV,又称HSB颜色模型。H是hue的首字母,表示色调,原创 2022-02-08 11:10:33 · 1101 阅读 · 0 评论 -
Python之OpenGL笔记(38):三种光照通道的合成
一、目的1、实现镜面光照射下的棋盘球体;2、环境光、散射光、镜面光三种光照通道的合成二、程序运行结果三、镜面光 现实世界中,当光滑表面被照射时会有方向很集中的反射光。这就是镜面光(Specular) 与散射光最终强度仅依赖于入射光与被照射点法向量的夹角不同,镜面光的最终强度还依赖于观察者的位置。也就是说,如果从摄像机到被照射点的向量不在反射光方向集中的范围内,观察者将不会看到镜面光,图6-12简单地说明了这个问题。 镜面光的计算模型比前面的两种光都要复杂一些,具体公式如下。原创 2020-08-03 09:47:41 · 1619 阅读 · 1 评论 -
Python之OpenGL笔记(37):散射光下的棋盘球体
一、目的1、实现散射光照射下的棋盘球体;二、程序运行结果三、散射光 上一小节中给出了仅仅使用环境光进行照射的案例,读者可能觉得效果并不好。确实如此,仅仅有环境光的场景效果是很差的,没有层次感。本节将介绍另外一种真实感好很多的光照效果—散射光(Diffuse),其指的是从物体表面向全方位360°均匀反射的光,如图6-8所示。 散射光具体代表的是现实世界中粗糙的物体表面被光照射时,反射光在各个方向基本均匀(也称为“漫反射”)的情况。 虽然反射后的散射光在各个方向是均匀的,但散射光反射原创 2020-08-02 09:39:36 · 765 阅读 · 0 评论 -
Python之OpenGL笔记(36):环境光下的棋盘球体
一、目的1、实现环境光照射下的棋盘球体;二、程序运行结果三、光照的基本模型 如果要用一个数学模型完全真实地描述现实世界中的光照是很难的,一方面数学模型本身可能太过复杂,另一方面复杂的模型可能导致巨大的计算量。因此,OpenGL中采用的光照模型相对现实世界进行了很大的简化,将光照分成了3种组成元素(也可以称为3个通道),包括:环境光、散射光镜面光 具体情况如图6-5所示。四、环境光 环境光(Ambient)指的是从四面八方照射到物体上,全方位360°都均匀的光。其代表的是原创 2020-08-01 08:38:47 · 829 阅读 · 0 评论 -
Python之OpenGL笔记(35):曲面物体的构建
一、目的1、曲面物体的构建画球体;2、棋盘纹理着色器应用;二、程序运行结果三、曲面物体的构建基本原理 吴亚峰《OpenGL ES 3.x游戏开发》(上卷)内容 OpenGL 中任何形状的 3D 物体都是用三角形拼凑而成的,因此,构建ᴢ面物体最重要的就是找到将曲面恰当拆分成三角形的策略。最基本的策略是首先按照一定的规则将物体按行和列两个方向进行拆分,这时就可以得到很多的小四边形。然后再将每个小四边形拆分成两个三角形即可。 球面首先被按照纬度(行)和经度(列)的方向拆分成了很多的小四原创 2020-07-31 14:35:51 · 849 阅读 · 0 评论 -
Python之OpenGL笔记(34):采用了顶点常量属性方法画多彩六角星
一、目的1、采用了顶点常量属性方法画多彩六角星;二、程序运行结果三、顶点常量属性 吴亚峰《OpenGL ES 3.x游戏开发》(上卷)内容 前面的很多案例中,给每一个顶点都单独指定了颜色值,这在很多情况下是很好的一种选择。但是,如果一个物体中所有的顶点颜色是一样的,这样做就显得效率不高了。因为这样不但更多地占用了内存空间,还会无谓增加数据 IO 的时间。本节将向读者介绍顶点常量属性技术,通过其可以很好地解决上述效率不够高的问题,具体内容如下:##1、顶点常量基本知识 顶点常量属性原创 2020-07-30 16:30:29 · 715 阅读 · 0 评论 -
Python之OpenGL笔记(33):透视投影画六角星
一、目的1、摄像机应用,透视投影画六角星;二、程序运行结果三、透视投影 吴亚峰《OpenGL ES 3.x游戏开发》(上卷)内容 现实世界中人眼观察物体时会有“近大远小”的效果,因此,要想开发出更加真实的场景,仅使用正交投影是远远不够的,这时可以采用透视投影。透视投影的投影线是不平行的,他们相交于视点。通过透视投影,可以产生现实世界中“近大远小”的效果,大部分 3D 游戏采用的都是透视投影。 透视投影中,视景体为锥台形区域,如图 5-7 所示。 从图 5-7 中可以看出,透视原创 2020-07-28 22:21:15 · 856 阅读 · 0 评论 -
Python之OpenGL笔记(32):正交投影画六角星
一、目的1、摄像机应用,正交投影画六角星;二、程序运行结果三、摄像机的设置 吴亚峰《OpenGL ES 3.x游戏开发》(上卷)内容 从日常生活的经验中可以很容易地了解到,随着摄像机位置、姿态的不同,就算是对同一个场景进行拍摄,得到的画面也是迥然不同的。 摄像机的设置需要给出 3 方面的信息,包括摄像机的位置、观察的方向以及 up 方向,具体情况如图5-1 所示。摄像机的位置很容易理解,用其在 3D 空间中的坐标来表示。摄像机观察的方向可以理解为摄像机镜头的指向,用一个观察原创 2020-07-27 16:31:22 · 679 阅读 · 0 评论 -
Python之OpenGL笔记(31):扭动的软糖
一、目的1、顶点着色器的妙用,画一个扭动的软糖;二、程序运行结果三、基本原理 吴亚峰《OpenGL ES 3.x游戏开发》(下卷)内容 从图 2-4 中可以看出,软糖模型实际上是由很多层小矩形叠加而成。在同一帧中,随着 y 坐标的不断升高,此层的顶点绕中心轴扭曲的角度越大。因此,实现扭动软糖的效果只要将代表软糖的长方体中各层顶点的 x、z 坐标按照一定的规则根据顶点的 y 坐标以及当前帧的控制参数进行变换即可,具体的计算思路如图 2-5、图 2-6 与图 2-7 所示。 具体的计算原创 2020-07-26 15:42:42 · 717 阅读 · 0 评论 -
Python之OpenGL笔记(30):飘扬的旗帜
一、目的1、二维纹理映射学习,画一个飘扬的旗帜;2、向奋战在防疫一线的白衣天使们致敬。二、程序运行结果三、基本原理 吴亚峰《OpenGL ES 3.x游戏开发》(下卷)内容 1、矩形的旗帜由大量的小三角形组成的。这样只要在绘制一帧画面时由顶点着色器根据一定的规则变换各个顶点的位置,即可得到旗帜迎风飘动的效果。 2、例子给出的是旗帜面向 z 轴正方向,即顶点沿 z 轴上下振动,形成的波浪沿 x轴传播的情况。同时将坐标系沿x轴的方向旋转一个角度,便于观察z轴的变化。 3、逐渐增加原创 2020-07-25 15:23:46 · 1755 阅读 · 0 评论 -
Python之OpenGL笔记(29):使用多个纹理单元混合的立方体
一、目的1、二维纹理映射学习,画一个使用多个纹理单元混合的立方体;二、程序运行结果三、使用多个纹理单元 一个纹理单元能支持多个纹理绑定到不同的目标,一个程序中也可以使用多个纹理单元加载多个2D纹理。 使用多个纹理单元的代码如下:// 使用0号纹理单元glActiveTexture(GL_TEXTURE0)glBindTexture(GL_TEXTURE_2D, texid1...原创 2020-02-26 12:29:40 · 1211 阅读 · 0 评论 -
Python之OpenGL笔记(28):二维纹理映射(2D textures)
一、目的1、二维纹理映射学习,画一个顶点颜色和纹理混合的立方体;二、程序运行结果三、纹理映射的概念和原理1、使用纹理增加物体表面细节 使用纹理,将物体表面的细节映射到建模好的物体表面,这样不仅能使渲染的模型表面细节更丰富,而且比较方便高效。纹理映射就是这样一种方法,在程序中通过为物体指定纹理坐标,通过纹理坐标获取纹理对象中的纹理,最终显示在屏幕区域上,已达到更加逼真的效果。2、纹素...原创 2020-02-25 15:20:11 · 2613 阅读 · 0 评论 -
Python之OpenGL笔记(27):镜像变换
一、目的1、画一组镜像变换的正方体;二、程序运行结果三、镜像变换 镜像变换,就是反射成像的概念,它是缩放变换的一个特例,当缩放因子k<0k < 0k<0时会导致镜像变换。执行镜像变换后的效果如程序运行结果图所示: 上面图中,第一象限为原图,第二象限为关于y轴的镜像,即点 (x,y,z)镜像后点(-x,y,z),因此所求矩阵为:KaTeX parse error:...原创 2020-02-24 13:04:38 · 1623 阅读 · 0 评论 -
Python之OpenGL笔记(26):不动点与旋转和缩放
一、目的1、画一组绕不动点旋转的正方体;二、程序运行结果三、为什么需要模型变换 OpenGL中的坐标处理过程包括模型变换、视变换、投影变换、视口变换等内容具体过程如下图2所示: 我们在OpenGL中通过定义一组顶点来定义一个模型,或者通过其他3D建模软件事先建好模型然后导入到OpenGL中。顶点属性定义了模型。如果我们要在一个场景中不同位置显示同一个模型怎么办? 如果我们要以不...原创 2020-02-16 15:19:21 · 1119 阅读 · 0 评论 -
Python之OpenGL笔记(25):动态管线绘制球体
一、目的1、画一个球体;二、程序运行结果三、球体的生成 1、将球体横向向切成30片, 纵向切30片,共900个点,见示意图 2、循环生成900个点的空间坐标(x,y,z),球面上点C的坐标 3、 x= R * cos(NumAngleHy) * cos(NumAngleZx) 4、 y = R * sin(NumAngleHy) 5、 z = R * cos(NumA...原创 2020-02-15 16:22:25 · 2930 阅读 · 1 评论 -
Python之OpenGL笔记(24):正方体多纹理贴图
一、目的1、画一个旋转的立方体,对正方体的六个面进行多纹理贴图;二、程序运行结果三、片元着色器 顶点着色器是做出3D图像的轮廓框架(毛坯,进行空间与空间变化等与空间相关操作) 片元 着色器让它变得好看一些,即上色(装修,进行颜色与纹理等操作)#四、正方体多纹理贴图 把图片映射到正方体的6个面上,有两种方法: 1. 加载一个纹理图片,这个纹理图片包含6个面的信息,如...原创 2020-02-14 09:24:25 · 3343 阅读 · 0 评论 -
Python之OpenGL笔记(23):复习VBO、VAO、VEO
一、目的1、复习VBO、VAO、VEO,画一个旋转的立方体;二、程序运行结果三、 关于坐标的问题1. 标准化设备坐标: 输入的顶点数据就应该在标准化设备坐标范围里面即:x,y,z的值都在(-1-1)之间。在这个区间之外的坐标都会被丢弃。 1.1一旦顶点数据传入顶点着色器中,那它们一定全都是标准化设备坐标了。 1.2标准化设备坐标符合右手定则,即原点在屏幕中心。2. 屏...原创 2020-02-13 22:13:51 · 1517 阅读 · 0 评论 -
Python之OpenGL笔记(22):箭头控制平面直角坐标系中的圆圈移动
一、目的1、箭头控制平面直角坐标系中的圆圈上下左右移动;二、程序运行结果三、glfw回调函数set_key_callbackglfw.set_key_callback(window, on_key) 设置键盘回调函数。def on_key(window, key, scancode, action, mods):打开键(窗体、键值、扫描码、动作、辅助键) 参数说明: wi...原创 2020-02-12 11:39:13 · 988 阅读 · 2 评论 -
Python之OpenGL笔记(21):描点法画圆
一、目的1、描点法画圆;二、程序运行结果三、说明 描点法画圆函数drawCircle( x0,y0,R) 圆心坐标x0,y0 ;半径R 等分角A=2π/等分数;则圆上任一点坐标 x=x0+RcosA;y=y0+RsinA;z=0 将圆上的每个点坐标存入数组返回。四、glDrawArrays方法 在OpenGl中所有的图形都是通过分解成三角形的方式进行...原创 2020-02-11 20:04:27 · 2005 阅读 · 0 评论 -
Python之OpenGL笔记(20):画平面直角坐标系
一、 目的1、画平面直角坐标系;二、程序运行结果三、numpy.hstack()函数1、函数 函数原型:numpy.hstack(tup),其中tup是arrays序列,阵列必须具有相同的形状,除了对应于轴的维度(默认情况下,第一个)。 等价于np.concatenate(tup,axis=1)2、例1 >>> import numpy as np...原创 2020-02-10 17:45:43 · 1980 阅读 · 0 评论 -
Python 3学习笔记(8):PyOpenGL之旋转茶壶
参考文献:《OpenGL超级宝典》、 用PyOpenGL叩开3D的心扉——OpenGL全解析(3)https://blog.youkuaiyun.com/thystar/article/details/45438269 安装 1、在网址http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl 下载PyOpenGL‑3.1.2‑cp36‑cp...原创 2018-08-29 17:51:22 · 3066 阅读 · 0 评论 -
Python 3学习笔记(10):PyOpenGL之反弹的方块
简介 用OpenGL画一个正方形。让这个正方形在窗口的边框反弹,使得正方形在窗口四处移动。回调函数glutTimerFunc(间隔秒数, 调用函数func,传送一个用户定义值value)被定时器调用的函数原型为TimerFunction(value),和windows定时器不一样,这个函数只激发一次。为了实现连续的动画,必须在定时器函数中再次重新设置定时器。在GLRect 程序...原创 2018-08-31 09:42:25 · 753 阅读 · 0 评论 -
Python 3学习笔记(6):改进的随机漫步程序调试
一、下载包1、在https://pypi.org/project/matplotlib/#files 下载matplotlib-2.2.2-cp36-cp36m-win32.whl;2、在 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载numpy-1.15.0+mkl-cp36-cp36m-win32.whl 和scipy-1.1.0-cp...原创 2018-08-11 16:56:20 · 395 阅读 · 0 评论 -
Python 3学习笔记(4):通过whois生成通讯录实例
实例实现的主要功能: 通过whois协议查询域名,得到注册者的信息,解析出名称、地址、城市和电话后存到whois.csv文件中。1、 寻找网站所有者 为了找到网站的所有者,我们可以使用WHOIS协议查询域名的注册者是谁。Python中有一个针对该协议的封装库,地址为https://pypi.python.org/pypi/python-whois ,...原创 2018-04-27 21:38:00 · 763 阅读 · 0 评论 -
Python 3学习笔记(5):Python3基础爬虫的调试
范传辉《Python爬虫开发与项目实战》基础爬虫的Python 3版本学习调试一、 简单爬虫架构1、爬虫调度器:(SpiderMan.py)用来启动、执行、停止爬虫,统筹协调其他四个模块;2、URL管理器:(UrlManager.py)负责管理URL链接,维护已爬的URL集合和未爬的URL集合,并提供新的URL链接接口;3、URL下载器:(HtmlDownloader.py)从未爬的URL集...原创 2018-04-30 17:43:13 · 949 阅读 · 0 评论 -
Python 3学习笔记(3):简单的爬虫实例
Python3简单的爬虫实例 1、打开百度网页2、将网页HTML转化成utf-8格式存入文件 baidu.txt3、获取网页中的所有a标签对象,将对象指向的链接地址抓取出来写入url.txt#spider1.py#coding:utf-8import requestsimport codecsfrom bs4 import BeautifulSoupurl = "http://www.baidu....原创 2018-04-22 07:51:16 · 345 阅读 · 0 评论 -
Python 3学习笔记(2):使用Requests库实现HTTP请求
Python3使用Requests库实现HTTP请求 1. 安装Requests库运行Pip install requests ,界面如下:c:\python>Pip install requests 2. 验证库是否安装成功在Python的shell下输入import requests,不报错,则是安装成功。3. 实现一个完整的请求与响应Get#coding:utf-8# 实现...原创 2018-04-22 07:46:47 · 1107 阅读 · 0 评论 -
Python 3学习笔记(7):Turtle库学习练习
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。 练习代码,在一张图内绘制螺旋线、太阳花、五角星。# coding=utf-8import turtleimport time # 同...原创 2018-08-25 11:37:40 · 995 阅读 · 0 评论 -
Python 3学习笔记(15):PyOpenGL之绘制螺杆
目的 绘制螺帽,可用箭头键切换视角。 内容 螺杆只是一个挨着螺帽的圆柱。(立着的圆柱)可以通过在一个圆上标记xz的值分解圆柱,然后取得在这两个点上的y值,得到近似圆柱侧面的平面多边形。然而这次,完全由矩形条组成这个圆柱侧面,因为每个相连的矩形可以共享一条法线产生光滑的阴影。就像前面创建螺帽时做的一样,这次我们也用同样的方法创建螺杆的底部。为每个顶点指定法线是为了...原创 2018-09-04 10:00:12 · 1037 阅读 · 0 评论 -
Python 3学习笔记(16):PyOpenGL之绘制螺纹
目的 绘制螺纹,可用箭头键切换视角。 内容 螺纹是螺钉中最复杂的部分。它是由两个排列成V形的平面组成的,这个V形螺旋上升到与螺杆齐长。这个螺纹就是通过两个平面的切面组成一个V形图形而形成的。(三角形渐进) 代码 #coding:utf-8import sysfrom math import pi as PIfrom math import sin, c...原创 2018-09-04 11:22:01 · 841 阅读 · 0 评论 -
Python 3学习笔记(17):PyOpenGL之组合螺钉
目的 组合螺帽、螺杆、螺纹成螺钉,可用箭头键切换视角。 内容 把螺钉的三个部分在适当的位置画出,组成螺钉。螺杆不用修改和移动,螺纹必须旋转来吻合螺杆,螺帽需要旋转和移动,并放在合适的位置。 代码 #coding:utf-8import sysfrom math import pi as PIfrom math import sin, cosfro...原创 2018-09-04 16:01:59 · 639 阅读 · 1 评论 -
Python 3学习笔记(11):PyOpenGL之绘制笑脸位图
简介 显示一张笑脸的位图程序。在OpenGL中,位图是两色图像,可以用来在屏幕上绘制字母或字符(比如图标)。OpenGL提供了绘制位图的函数glBitmap.程序中定义了16×16的像素位图,位图是64无符号字节的数组,在图像中每行有4个字节(每行的最后两个字节未用)。第一个字节的第7位与图标的左下角相对应(即与图像上下倒置) 调用函数glRasterPos2i指定当前...原创 2018-09-01 22:23:13 · 1648 阅读 · 0 评论 -
Python 3学习笔记(9):PyOpenGL之保持正方形
简介 用OpenGL画一个居中的正方形。改变窗口大小时,使用回调函数ChangeSize重新绘制正方形,在glViewport和glOrtho函数帮助下,实现正射投影(即不随窗口的纵横比变化,始终显示为正方形。)glViewport (x,y,width,height) 设置窗口区域glOrtho (left,right,top,bottom,near,far)设置或修改修剪空间的...原创 2018-08-30 15:56:44 · 950 阅读 · 0 评论 -
Python 3学习笔记(12):PyOpenGL之旋转六边形
目的 1、掌握OpenGL的闲置函数2、掌握OpenGL的时间函数3、掌握OpenGL的简单动画功能。4、掌握OpenGL的闲置函数与简单动画。5、 了解OpengGL裁剪窗口、视区、显示窗口的概念和它们之间的关系。6、进一步掌握OpenGL的基本图元的绘制。 内容 1、绘制六边形 glBegin(GL_POLYGON) ...原创 2018-09-02 18:10:55 · 1591 阅读 · 1 评论 -
Python 3学习笔记(13):PyOpenGL之正交投影
目的 1、建立金属螺钉的模型(三个组成:螺帽、螺杆、螺纹)2、创建一个正交投影立方体框架,可用箭头键切换视角。3、掌握OpenGL的顶点数组功能。4、掌握OpenGL的绘制图元函数。5、 了解OpengGL键盘控制及回调函数glutSpecialFunc。 内容 1、用较小、较简单的图形生成一个较复杂的图形。如建立一个建立金属螺钉的模型(三个组成:螺帽、螺杆...原创 2018-09-03 11:35:50 · 1516 阅读 · 0 评论 -
Python 3学习笔记(14):PyOpenGL之绘制螺帽
目的 1、建立光照模型2、绘制螺帽,可用箭头键切换视角。 内容 选定投影方式后,下一步就是选择螺钉视图的光照模型。渲染环境包括光照和材料属性(金属光泽),唯一的光源在观察者的左上方。螺钉的螺帽部分有六个光滑的侧面,其顶部和底部也是光滑的。我们可以用两个六边形(代表顶部和底部)和围绕其边缘的一系列矩形(代表各个侧面)来构造这个实心对象。我们使用GL_TRIANGL...原创 2018-09-03 17:14:53 · 1267 阅读 · 0 评论 -
Python 3学习笔记(18):图形化GUI编程Wx文件编辑
运行效果 Python图形化模块介绍 1、Tkinter :是python最简单的图形化模块, Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 。总共只有15种组件2、Pyqt:是python最复杂也是使用最广泛的图形化3、Wx:是python当中居中的一个图形化,学习结构很清晰4、Pywin :是python windows 下...原创 2018-12-24 15:37:34 · 1798 阅读 · 0 评论 -
Python3学习笔记(1): print函数用法总结
Python 3 print 函数用法总结1. 输出字符串和数字>>>print("dalong10")# 输出字符串dalong10>>> print(100)# 输出数字100>>> str ='dalong10'>>> print(str)# 输出变量dalong10>>>原创 2018-04-22 07:40:50 · 776 阅读 · 0 评论