自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (3)
  • 收藏
  • 关注

原创 OSG中背景的设置

尝试了两种不同的方式设置背景。

2023-01-04 15:22:44 634

原创 osg透视投影与正交投影的切换

在切换的时候保持等距的转换

2022-09-23 14:47:06 1404 2

原创 OSG以鼠标为中心缩放

针对透视投影和正交投影的两种不同缩放

2022-09-23 14:01:23 1208 3

原创 osg在漫游器中旋转模型

目的是希望在漫游器做旋转操作时不按照场景中心,而是模型的中心来旋转。

2022-09-23 09:45:06 735 10

原创 opencv-python学习笔记(三)---图像处理(一)

文章目录opencv中的图像处理改变颜色空间opencv中的图像处理改变颜色空间. opencv中有上百中颜色空间的转换方法,其中最广泛的是BGR<->Gray和BGR<->HSV。....

2019-11-28 14:43:30 568

原创 opencv-python学习笔记(二)

文章目录图像基本操作图像基本操作. 当读取完一个图像之后,可以直接通过横纵坐标来返回该像素点的rgb值:

2019-11-11 10:38:29 220

原创 opencv-python学习笔记(一)

文章目录安装读取显示和保存笔记来源于官方文档安装. 在控制台运行pip install opencv-python,等待下载安装完成就可以直接引用了读取显示和保存. 使用cv2.imread()来读取图片,cv2.imshow()来显示图片,cv2.imwrite()来保存图片,例如:import cv2img = cv2.imread('kkxj.jpg')#cv2.named...

2019-10-22 13:52:17 356

原创 Python核心编程笔记————Web框架:Django(二)

文章目录创建博客的界面创建模板创建博客的界面. 从Django的角度来看,web界面应该有以下几个经典的组件:. 1.一个模板:用于显示通过 Python 类字典对象传入的信息。. 2.一个视图函数:用于执行针对请求的核心逻辑。. 3.一个 URL 模式:将传入的请求映射到对应的视图中,同时也可以将参数传递给视图。创建模板. Django的模板语言比较简单,一个简单的模板与下面类似:...

2019-09-10 10:55:47 198

原创 Python核心编程笔记————Web框架:Django(一)

文章目录Django安装预备条件安装项目和应用创建项目运行开发服务器创建应用创建模型来添加数据库服务Django安装预备条件. 在安装Django之前,需要先安装python,Apache(安装过程 ,无法正常启动服务时戳),数据库(标准版的Django只可运行于基于SQL的关系数据库管理系统,主要的四种是:PostgreSQL、 MySQL、 Oracle 和 SQLite。)安装. ...

2019-08-22 10:28:05 209

转载 Python核心编程笔记————Web 编程:CGI 和 WSGI(三)

文章目录WCGI动机服务器集成外部进程WSGI简介参考服务器中间件机封装WSGI应用WCGI动机. CGI的目的是为了动态的创建内容,但是这种方式无法扩展,CGI进程针对每个请求进行创建(就像是打开Python解释器),用完就抛弃,如果接受了上千个请求,创建大量的语言解释器进程很快就会导致服务器停机。有两种方法来解决这个问题:服务器集成和外部进程。服务器集成. 也称服务器API。当前应用...

2019-04-25 14:55:55 443

转载 Python核心编程笔记————Web 编程:CGI 和 WSGI(二)

文章目录高级CGImulitipart 表单提交和文件上传多值字段cookiecookie 和文件上传高级CGImulitipart 表单提交和文件上传. CGI 特别指出只允许两种表单编码:“application/x-www-form-urlencoded”和“multipart/form-dat”。且前者是默认的,因此前者不需要特别指出,但是后者需要明确给出编码:<FORM e...

2019-04-25 10:18:42 225

翻译 Python核心编程笔记————Web 编程:CGI 和 WSGI(一)

文章目录简介和动机Python扩展简介什么情况下需要扩展Python什么情况下不应该扩展Python编写Python扩展创建应用代码简介和动机Python扩展简介. 一般来说,任何可以集成或导入另一个Python脚本的代码都是一个扩展,这些代码可以使用Python编写,也可以使用C或C++之类的语言来编写什么情况下需要扩展Python. 以下是几点理由:  1.需要Python没有的额...

2019-04-24 12:34:57 479

翻译 Python核心编程笔记————数据库编程(二)

文章目录ORM(对象关系映射)Python与ORMORM(对象关系映射). 大部分数据库系统都包含Python接口,能使人更好的利用它们的功能,但是缺点是需要去了解SQL,如果更希望操纵Python对象而不是SQL查询,且仍然希望使用关系数据库作为数据后端,那么可以使用 ORM。Python与ORM.  ORM 系统的作者将纯 SQL 语句进行了抽象化处理,将其实现为 Python 中的对...

2019-03-29 11:32:42 205

转载 Python核心编程笔记————数据库编程(一)

文章目录数据库简介持久化存储数据库基本操作和SQL底层存储用户接口数据库组件SQL数据库与PythonPython的DB-API模块属性数据属性参数风格函数属性异常数据库简介持久化存储. 持久化存储一般有三种基础的存储机制:文件、数据库系统以及一些混合类型。这种混合类型包括现有系统上的 API、ORM、文件管理器、电子表格、配置文件等。数据库基本操作和SQL, 以下包括一些基础的数据库概...

2019-03-14 14:20:10 549

翻译 Python核心编程笔记————GUI编程(二)

文章目录

2019-03-04 15:07:42 443

转载 Python核心编程笔记————GUI编程(一)

文章目录简介Tkinter和Python编程Tkinter模块:添加Tk到应用中GUI编程介绍窗口和控件事件驱动处理布局管理器Tk控件Tkinter示例Label、Button和Scale控件ps:python版本为3.6.2简介. 这里主要使用的GUI工具包是Python默认的GUI库Tk,通过接口Tkinter来访问,Tk并不是最新和最好的,也没有包含最强大的GUI构建模块集,但是足够易...

2019-02-18 13:34:06 405

转载 Python核心编程笔记————多线程编程(二)

文章目录同步原语锁示例同步原语. 一般在多线程的编程中,总会有特定的函数或模块不希望被多个线程同时执行,比如修改数据库、更新文件或是其它会产生竞态条件的类似情况。而且如果两个线程的运行顺序发生变化可能导致代码的执行轨迹或行为不相同,或者产生不一样的数据。  这就是需要同步的情况。当任意数量的线程可以访问临界区的资源,但是在给定时刻只有一个线程可以通过时,就是使用同步的时候了。这里介绍两种类型...

2019-02-15 14:22:16 290

转载 Python核心编程笔记————多线程编程(一)

文章目录简介线程和进程进程线程简介. 多线程编程的目的是提高整个任务的性能。其对具有如下特点的编程任务是非常理想的:  需要多个并发活动;  每个活动的处理顺序是不确定的(随机的)。  使用多线程来规划合适的编程任务可以降低程序的复杂性,使其更加清晰、高效、简介。线程和进程进程. 进程是一个执行中的程序,每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。操作...

2019-01-25 09:53:30 1546

转载 python核心编程笔记——因特网客户端编程(三)

文章目录电子邮件ps:python版本为3.6.2电子邮件. 根据RFC2822的定义,“(电子邮件)消息由头字段(统称消息标题)以及后面可选的正文组成”。即邮件可以没有正文,但是一定要有标题。...

2019-01-22 14:25:59 599

原创 python核心编程笔记——因特网客户端编程(二)

文章目录网络新闻usenet和新闻组网络新闻传输协议Python与NNTPnntplib.NNTP 类方法ps:我的python环境为3.6.2网络新闻usenet和新闻组. usenet新闻系统是一个由大量计算机组成的庞大的全球网络,计算机之间共享 Usenet 上的帖子。如果某个用户发了一个帖子到本地的 Usenet 计算机上,这个帖子会被传播到其他相连的计算机上,再由这些计算机传到与...

2019-01-11 14:42:51 203

翻译 python核心编程笔记——因特网客户端编程(一)

文章目录因特网客户端简介文件传输文件传输因特网协议文件传输协议因特网客户端简介. 这里将因特网理解为用来传输数据的地方,数据在服务提供者和服务使用者之间传输,在某种情况下被称为“生产者-消费者”,服务器就是生产者,提供服务,而客户端使用服务。文件传输文件传输因特网协议. 因特网中最常见的就是传输文件,许多协议可以用于在因特网上传输文件。最流行包括文件传输协议(FTP)、UNIX到UNIX...

2019-01-09 16:40:47 219

翻译 python核心编程笔记——网络编程(二)

文章目录Python中的网络编程socket()模块函数套接字对象(内置)方法创建TCP服务器创建TCP客户端执行TCP服务器和客户端创建UDP服务器创建UDP客户端socket模块属性Python中的网络编程. 本节中使用的主要模块是socket模块,在模块中可以找到socket()函数,该函数用于创建套接字对象。套接字也有自己的方法集,这些方法可以实现基于套接字的网络通信。socket(...

2019-01-03 16:44:29 178

翻译 python核心编程笔记——网络编程(一)

文章目录客户端/服务器架构硬件客户端/服务器架构软件客户端/服务器架构抽象理解客户端/服务器网络编程套接字:通信端点套接字套接字地址:主机-端口号面向连接的套接字与无连接的套接字面向连接的套接字无连接的套接字. 题外话:私以为这本书挺好的,在讲一个大块的时候会先介绍相关的知识,然后再是在python中的应用。客户端/服务器架构. 无论是软件还是硬件系统,相同的前提都是:服务器是一系列软件或硬...

2019-01-02 14:43:41 239

翻译 python核心编程笔记——正则表达式(二)

文章目录正则表达式与Python语言使用compile()函数编译正则表达式匹配对象以及group()和groups()方法使用match()方法匹配字符串使用search()在一个字符串中查找模式正则表达式与Python语言. Python当前通过使用re模块来支持正则表达式,这里将介绍两个主要的函数——match()和serarch(),以及compile()函数。其他常用函数/方法还有:...

2018-12-29 14:42:11 383 1

翻译 python核心编程笔记——正则表达式(一)

文章目录特殊符号和字符使用择一匹配符号匹配多个正则表达式模式匹配任意单个字符从字符串起始或结尾或单词边界匹配创建字符集([])限定范围与否定使用闭包操作符实现存在性和频数匹配(*\+\?)表示字符集的特殊字符使用圆括号指定分组扩展表示法特殊符号和字符. 即所谓的“元字符”,这些字符给予正则表达式强大的功能和灵活性。以下是常见的符号和字符:使用择一匹配符号匹配多个正则表达式模式. 表示择...

2018-12-18 12:00:09 196

原创 effective C++笔记--杂项讨论

文章目录不要轻忽编译器的警告让自己熟悉包括TR1在内的标准程序库不要轻忽编译器的警告. (ps:这条条款真是最容易理解的条款了)  严肃对待编译器发出的警告信息,努力在编译器的最高警告级别下争取“无任何警告”的荣誉。  不要过度依赖编译器的报警能力,因为不同的编译器对待不同的事情的态度可能是不同的,一旦程序移植到另一个编译器上,原本依赖的警告信息可能失效。让自己熟悉包括TR1在内的标准程...

2018-12-10 15:21:52 211 1

原创 effective C++笔记--定制new和delete(二)

文章目录编写new和delete时需固守常规写了placement new也要写 placement delete编写new和delete时需固守常规. 在编写自己的operator new和operator delete时,需要遵守一些规则,先从operator new开始:实现一致性的operator new必需要返回正确的值;内存不足时必须调用new-handler函数;必须有应对零内存...

2018-12-07 14:50:09 87

原创 effective C++笔记--定制new和delete(一)

文章目录了解new-handler的行为. C++允许手动的管理内存,这是双刃剑,你可以使程序更有效率,也可能面临维护程序带来的麻烦,所以了解C++内存管理的例程很是重要,其中的两个主角是分配例程和归还例程(也就是operator new 和 operator delete),配角是new-handler,这是当operator new无法满足客户的内存需求时调用的函数。  额外有一点要注意的...

2018-12-07 10:43:19 163

原创 effective C++笔记--模板与泛型编程(三)

文章目录请使用traits classes表现类型信息认识template元编程请使用traits classes表现类型信息. traits并不是C++的关键字或是预先定义好的构件,它们是一种技术,也是一个C++程序员共同遵守的协议。这项技术的要求之一是:它对内置类型和用户自定义类型的表现必须一样好,即traits技术能够施行于用户自定义类型,也能施行于内置类型如指针身上。  “trait...

2018-12-01 15:34:39 211

原创 effective C++笔记--模板与泛型编程(二)

文章目录运用成员函数模板接受所有兼容类型需要类型转换时请为模板定义非成员函数运用成员函数模板接受所有兼容类型. 真实指针做的很好的一件事是支持隐式转换,派生类的指针可以指向基类的指针,指向非常量对象的指针可以指向转换成常量对象的指针等。但是如果想在用户自定义的智能指针中模拟上述转换,稍稍会有点麻烦。例如:class Top{...};class Middle:public Top{...}...

2018-11-30 15:09:08 128 1

原创 effective C++笔记--模板与泛型编程(一)

文章目录了解隐式接口和编译器多态了解typename的双重意义了解隐式接口和编译器多态. 面向对象编程世界总是以显式接口和运行期多态解决问题。比如一个函数中有一个参数是一个类的指针或引用,由于该参数的类型确定,所以它必定支持这一类的接口,可以在源码中找到相关的接口(比如头文件中),我们称此为一个显示接口;假如这个类的某些成员函数时virtual的,那么该参数的调用将显现出运行期多态,也就是根据...

2018-11-26 16:41:15 166

原创 effective C++笔记--继承与面向对象设计(二)

文章目录绝不重新定义继承而来的非虚函数绝不重新定义继承而来的缺省参数值通过复合塑模出has-a或“根据某物实现出”明智而审慎地使用private继承绝不重新定义继承而来的非虚函数. 假设基类中有一个非虚的成员函数,那么派生类在公有继承基类的时候,会继承这个函数接口和它的实现,但是如果派生类中重新定义了这个函数接口,则会遮掩住基类的同名函数,这就不符合“public继承是一种is-a关系”了。所...

2018-11-22 14:41:23 108

原创 effective C++笔记--继承与面向对象设计(一)

文章目录确定你的public继承塑模is-a关系避免遮掩继承而来的名字区分接口继承和实现继承确定你的public继承塑模is-a关系. public继承在父类和子类之间的关系应该是:子类的对象也是一个父类的对象,但是父类的对象不是子类的对象,通俗点讲就是父类能派上用处的地方,子类也能派上用处,但是反过来就不是了。  假设有一个类表示鸟,它能派生出表示企鹅的类,鸟可以飞,所以在鸟这个类中有一个...

2018-11-21 16:43:07 151

原创 effective C++笔记——实现

文章目录尽可能延后变量定义式的出现时间尽量少做转型操作避免返回handles指向对象的内部成分为“异常安全”而努力是值得的尽可能延后变量定义式的出现时间. 当定义了一个变量并且它的类型存在构造函数和析构函数,那么程序需要承受它的构造成本和析构成本,即使这个变量并不被使用,仍需要耗费这些成本,所以应该尽量避免这种情况的发生。  通常我们不会定义一个不被使用的变量出来,但是定义变量过早可能会应为...

2018-11-20 11:50:29 227

原创 effective C++笔记——设计与声明

文章目录让接口容易被正确使用,不易被误用设计class犹如设计type宁以pass-by-reference-to-const替换pass-by-value必须返回对象是,别妄想返回其reference将成员变量声明为private宁以non-member、non-friend替换member函数若所有的参数皆需要类型转换,请为此采用non-member函数让接口容易被正确使用,不易被误用. ...

2018-11-05 12:45:29 94

原创 effective C++笔记——资源管理

文章目录以对象管理资源在资源类中小心copying行为在资源管理类中提供对原始资源的访问成对使用new和delete要使用相同型式以独立语句将newed对象置入指针资源需要在使用完之后就归还给系统,如果不这么做,糟糕的是就会发生。C++程序中常用的资源就是动态内存分配(使用完不归还会导致内存泄露),但是内存知识需要被管理的众多资源之一。其他常见的资源还包括文件描述器、互斥锁、图形界面中的字型和笔...

2018-11-01 15:24:30 151

原创 effective C++笔记——构造/析构/赋值运算

文章目录c++对类默认编写并调用的函数明确拒绝编译器自动生成函数为多态基类声明virtual析构函数别让异常逃离析构函数绝不在构造和析构过程中调用virtual函数令operator=返回一个引用(reference to *this)在operator=中处理“自我赋值”复制对象时勿忘其每一个成分c++对类默认编写并调用的函数当C++处理过一个类后,编译器会为它声明(编译器的版本)没有声明的...

2018-10-29 15:01:09 169

原创 effective C++笔记——尽量替换#define

宏替换的工作是由预处理器来做的,它不会被视为语言的一部分,因此可能发生的情况是:  定义了如下宏提换语句:#define RATIO 1.653  也许在编译器处理源码前这句话就被预处理器移走了,该记号名称可能没有进入记号表(symbol table)内。于是当运用此常量但获得一个编译错误时,该信息可能提到1.653而不是RATIO,这可能对调试产生很大的干扰。  解决之道是使用常量表达式来...

2018-10-26 11:35:26 363 1

原创 C++ Primer第五版笔记--枚举类型

枚举类型可以将一组整型常量组织在一起;和类一样,每个枚举类型定义了一种新的类型;枚举属于字面常量类型。  C++包含两种枚举:限定作用域(C++11新标准引入)的和不限定作用域的:  定义限定作用域的枚举类型的一般形式是:首先是关键字enum class(或者等价的使用struct),之后是枚举类型名字以及用花括号括起来的以逗号分割开来的枚举成员列表,最后是一个分号:   enum clas...

2018-10-12 14:23:37 682

原创 C++ Primer第五版笔记——运行时类型识别

运行时类型识别(run-time type identification,RTTI)的功能由两个运算符实现: typeid运算符,用于返回表达式的类型。 dynamic_cast运算符,用于将基类的指针或引用安全的转换成派生类的指针或引用。 当这两个运算符用于某种类型的指针或引用,并且该类型含有虚函数时,运算符将使用指针或引用所绑定的对象的动态类型。 这两个运算符适用于以下情况:使用基类对...

2018-10-09 09:47:53 134

python核心编程第三版(中文版)

《Python核心编程(第3版)》是经典畅销图书《Python核心编程(第二版)》的全新升级版本,总共分为3部分。第1部分为讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、Microsoft Office编程、扩展Python等内容。第2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、Django Web框架、云计算、高级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。

2019-03-04

effective C++第三版(中文版)

《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。

2019-03-04

C++ Primer中文版(第五版)

C++ Primer中文版(第五版)+书中的源代码。本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。 对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。

2018-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除