自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dezeming的博客

那年花开

  • 博客(29)
  • 资源 (11)
  • 收藏
  • 关注

原创 QT图形显示和处理3 坐标系统(重点)

我们先从最简单的例子入手。 QPainter painter(this); QPen pen(Qt::green,5,Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin); painter.setPen(pen); painter.drawLine(QPoint(0,0), QPoint(150, 150)); painter.setWindow(-wi...

2019-10-31 23:26:28 6971

原创 QT图形显示和处理2 坐标系统(重点)

上一节我们讲了基本的绘图,这一节将重点讲述什么是二维坐标系。大多数博客和书对QT的坐标讲解非常粗浅,两个非常重要的函数setWindow和setViewport都没有说清楚。这一节将重点讲一下坐标系统。先上一段代码:QPainter painter(this);QPen pen(Qt::green,5,Qt::SolidLine,Qt::RoundCap,Qt::RoundJoin...

2019-10-31 22:44:36 6805

原创 QT图形显示和处理1

首先我们必须要了解关于QT图形图像的基本知识:QT的绘图系统是由QPainter,QPainterDevice和QPainterEngine来构成的。其中QPainter是用来绘制的类,QPainterDevice是提供绘制设备的类,而QPainterEngine是用来连接QPainter和QPainterDevice的,即在画画这个功能和绘画工具之间提供一个桥梁。既然QPainter是用...

2019-10-31 17:38:02 6719

原创 XML语言数据读写理解16

下面我们介入一个应用场景:也就是我们xml文件的应用:体渲染传输函数。首先看一下效果:这是从软件ExposureRender上截的图来显示的,左边的面板用来调节传输函数,右边来显示出效果。该程序的渲染是完全在GPU上实现的,我们因为重点在于制作和学习xml语言结构,所以就不使用GPU制作渲染引擎了,而是在VTK上显示。现在我们首先来思考一下左边。左边其实是一个qt画板,可以在上...

2019-10-31 09:38:02 6058

原创 XML语言数据读写理解15

现在该实现删除函数了。删除的方法是:给定第几个节点的索引(比如索引2),我们把第三个(0 1 2)节点删除。结合上一章程序:TsfunGroup tg;tg.readXML("ss");//tg.showXML(); NodeTS nts(0.01923,0.1023,QColor(123,32,67));tg.addNodeToItem("maxMode",nts);tg....

2019-10-30 23:52:02 6070

原创 XML语言数据读写理解14

现在我们写一个自由添加节点的程序。内容还是承接上面几章节。首先我们先从最底层的NodeTS类入手,建造一个构造函数:NodeTS::NodeTS(double argNormalizedIntensity, double argOpacity, QColor argEmission, QObject * parent):CommonXML(parent){ this->Norma...

2019-10-30 23:08:52 6026

原创 XML语言数据读写理解13

最后就是在tsfunGroup类里面定义函数:void writeXML();因为不再需要什么返回值了。源码如下:void TsfunGroup::writeXML() { writeFile.clear(); QDomProcessingInstruction instruction = writeFile.createProcessingInstruction("xml",...

2019-10-30 20:57:29 6086

原创 XML语言数据读写理解12

首先我们从最底层的Nodets开始写起,然后逐步往上层实现。在类里面定义一个函数:QDomElement writeNodets(QDomDocument &doc);注意参数是QDomDocument,因为你要靠这个参数来创建节点元素。下面把函数附上:QDomElement NodeTS::writeNodets(QDomDocument &doc){...

2019-10-30 20:30:31 6024

原创 XML语言数据读写理解11

有了前10节的基础,以及我在自己的博客里发布了那个简单的QT调试窗口类,一共两个,一个是有单例的,一个不是。大家想使用的话只需要加个头文件就可以调用了。 我们现在需要把存好的内容给显示出来,看看是不是正确读取了(虽然我觉得是正确的)。 我们再回到以前的Nodets类里,添加如下公共public代码: double returnNormalizedIntensity...

2019-10-30 19:01:56 6067

原创 简易的QT输出调试器2

我们升级一下调试器,让它变成单例模式,所有调试都打印在一个窗口上:#pragma once#ifndef _DEBUGWIDGET_H__#define _DEBUGWIDGET_H__#include <QWidget>#include <qtextedit.h>#include <qlayout.h>class DebugWidget : ...

2019-10-30 18:48:04 6085

原创 简易的QT输出调试器

因为在VS+QT的环境下,cout以及QDebug都不好用了,所以自己定义一个QT的widget来显示调试信息。先放上源码:#pragma once#ifndef _DEBUGWIDGET_H__#define _DEBUGWIDGET_H__#include <QWidget>#include <qtextedit.h>#include <q...

2019-10-29 23:34:14 6137

原创 XML语言数据读写理解10

我们上一节讲完了读出Nodes和其他属性信息的程序,接下来我们把两个Item读到group里面。#pragma once#include <QObject>#include "tsfunitem.hpp"class TsfunGroup : public QObject { Q_OBJECTpublic: TsfunGroup(QObject * pare...

2019-10-29 23:22:34 6099

原创 XML语言数据读写理解9

因为篇幅原因就不把上一节的XML文件粘贴上来了,大家可以返回去看。 现在,我们需要把所有的node都读出来,然后保存到一个容器里。要注意的一点是所有的数值都是根据NormalizedIntensity的大小进行排序的,我们存储也要按照顺序来存储,这样以后应用的时候也更方便一些。 我们使用QList来存储,首先再Node节点底下设置一个别名:typedef QList&l...

2019-10-29 21:48:46 6145

原创 XML语言数据读写理解8

现在我们来看一个具体的实例:<?xml version="1.0" encoding="UTF-8"?><TsfunGroup> <TsfunItem Name="normalMode"> <Nodes> <Node> <NormalizedIntensity Value="0"/> ...

2019-10-28 23:24:50 6083

原创 XML语言数据读写理解7

接下来我们研究一下如何删除一个已有的子节点,并保存在文件里。 这一节其实非常没有意思,为什么呢,因为其实我们想删除一个节点的某个子节点,直接用下面的代码就可以了:ABC.removeChild(realData.at(0)); ABC是之前定义的一个QDomElement元素,realData是子节点的列表。 为了看看效果,我们还是从头开始。首先给出t...

2019-10-28 21:42:01 6014

原创 XML语言数据读写理解6

接着上一节开始,我们继续添加如下代码: QDomElement elementA11 = doc.createElement("A"); elementA11.setAttribute("id", "1"); QDomElement elementA12 = doc.createElement("A"); elementA12.setAttribute("id", "2");...

2019-10-28 21:08:45 6080

原创 XML语言数据读写理解5

现在我们再讲一下应该怎么把数据写成XML文件。 还是以例子入手,假设我们已经有了前面章节例子的数据,这一节我们考虑怎么把这些数据按照xml文件格式写入到xml文件里面。首先列一下我们需要写入的数据:<?xml version="1.0" encoding="UTF-8"?><ROOT><Mode> <firstEle&gt...

2019-10-28 18:27:13 6083

原创 XML语言数据读写理解4

接着上一节来。首先再把xml文件放一下。 我们已经能显示出两个子节点Mode和Mode2来了,但是每个子节点底下也有属于它的子节点的子节点,即Mode里的firstEle和secondEle以及Mode2里的firstEle2和secondEle2,这两个节点应该怎么读取?我想应该已经很明确了: QDomNode data = root.firstC...

2019-10-28 18:11:17 6084

原创 XML语言数据读写理解3

首先先把我们要读取的xml文件搞上来:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Appearance><ROOT><Mode> <firstEle> <A id = "1"> <T param1="42323" param2="2356" pa...

2019-10-28 17:27:36 6124

原创 XML语言数据读写理解2

首先我们需要了解一下对于计算机来说,XML语言到底是怎么构成的。一般来说,XML语言的第一行会是这种形式:<?xml version="1.0" encoding="UTF-8"?> 这表示xml的版本和它的编码格式,一般就是GB2312或者UTF-8,这个一般我们不需要自己去修改,所以我们只需要读出来就好了。这里先贴一段程序,然后详细介绍一下,这一节我们就以这...

2019-10-28 16:58:22 6169

原创 XML语言数据读写理解1

可扩展标记语言(XML)是一种非常简单的数据存储读写语言,与其他数据库语言相比,这是它最大的优点。 废话少说,接下来我们就写一下XML的语言格式:如何从0开始写一个XML数据文件,并用C++语言将里面的数据读出来,并在QT界面上进行显示。 首先先找了一个简单的xml文件,这个xml文件是用来存渲染需求的数据的:<!DOCTYPE Appearance>...

2019-10-27 17:50:02 6806 2

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 结语

讲到这里,关于傅里叶变换的历史起源就讲完了,或许以后我还会发布一些关于傅里叶变换的应用之类的文章,但那也是以后的事情了。 其实简单来说,其实傅里叶变换就是把一个信号变为一堆正弦信号的组合。这些正弦信号是什么频率,这个总的信号的频谱就包含这些频率。 中间给了很多公式,也做了不少解释。但我认为还是有一些地方仍然没有解释好,但是有些内容再解释恐怕也很难讲清楚。总之,傅里叶变换...

2019-10-26 21:18:14 7173 2

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 第六章 非周期信号的傅里叶变换

之前,我们已经了解到了周期信号可以分解为许多正弦信号(或者说,复指数信号)。只要给一个具体的x(t)周期信号在一个周期上的时域表示,我们就能求出来它在频域上的表示。 但是问题又来了:如果信号是非周期的呢? 假设我们现在的信号是这个样子: 像这种在时域上是非周期的信号,我们就做如此假设:假设其周期是无穷大,即从负无穷到正无穷。 借用上一章的...

2019-10-26 20:04:05 8226 3

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 第五章 傅里叶开始变换了

转接第三章,我们知道了和 可以代表信号中频率为的分量大小,所以现在涉及的最重要的问题就是,如何把求出来(毕竟可以直接使用的共轭来得出)。 以下的整个过程,就被称为傅里叶级数(即)的求法。 它的求法其实没有什么可解释的,无非是看看《信号与系统》或者《傅里叶变换与应用》这些课本。为了完整性这里也是重新带着大家推导一遍:以下推导求的公式,并没有什么物理意义,仅仅只是...

2019-10-26 15:08:30 7202

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 第四章 比较用正弦和复指数来表示频率

首先我要声明一下,这一章可以看也可以不看,都无所谓!但最好看一下最后面给的一个结论和解释。 写这一章只是为了知识的完整性,尽管可能有些人会对这一章的某些概念产生疑问,在这里我会用最简单的方式去阐述复指数和正弦信号之间的关系。 考察我们之前分解的一个信号: 要注意的是,这里的分解是变为了正弦波分解,而没有在复指数域进行分解,我们把上面的分解转为指...

2019-10-26 13:14:17 7297

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 第三章 正弦信号的叠加

在这之前,必须要重新提一句,为了方便表示,我们将使用复指数来代替正弦波,并用频率这个词来代指角频率。 现在我们已经知道了,信号分解成正弦信号以后,分解成的所有正弦信号的频率构成了整个信号的频率,我们称为这个信号的频谱,即是该信号在各个频率的幅值。如果一个信号分解成一堆正弦信号以后,其中一个分量是 12*sin(1000000 t),那么这个信号在频率1000000的地方也有值,其...

2019-10-26 13:08:47 10328

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 第二章 频率是什么玩意

欧拉发现了这么一个(或者说两个)公式: 通过上下两个公式相加或者相减,我们可以得出cos和sin的复指数表示: 但是问题来了,我们为什么要搞这么复杂,为什么要把实实在在的正弦信号搞成高深难懂的复数(虚数)? 这里为了方便叙述,我只简单说一下:表示成复数只是为了方便一些运算而已。也就是说其实表示成第一章说的一些正弦信号的也是可以的,表示为指数相加...

2019-10-26 00:07:41 7964

原创 傅里叶变换究竟是什么玩意 以及 这些公式究竟是怎么来的 第一章 欧拉和拉格朗日等人的发现

在傅里叶搞出来他的变换之前,有很多数学家在研究信号的时候就发现了这样一件事:有很多信号都可以用一堆正弦信号的叠加来表示,例如:该函数有两个子项:sin(x)和1/3*sin(3x)。再增加两个子项:当整个函数的子项变得非常多以后:当子项无穷多以后,叠加出来的效果就是方波:除了方波,再举一个三角波的例子: 其实,有很多信号都可以通过...

2019-10-25 13:42:09 7541

原创 傅里叶变换究竟是什么玩意儿 以及 这些公式究竟是怎么来的 引子

很早就想写一个关于傅里叶变换的博客,来深度地阐述一下究竟什么是傅里叶变换。很多人或许都对傅里叶变换的公式有疑问,为什么一个信号,乘上一个指数函数,再积个分,就成了频域表示了呢? 大多数博客都是在阐述傅里叶变换后的效果,而忽视了最本质的东西——傅里叶变换究竟是怎么产生的?以及,傅里叶变换的公式应该怎么去理解?究竟是怎么“造”出来这么神奇的公式的?我相信,不用任何公式来阐述比较难懂的...

2019-10-25 12:59:36 6661 3

myRay_Tracer.zip

RayTracer 的工程项目文件,采用Opengl显示。 内容为本人的博客初始工程。其余内容可以参考本人博客,蒙特卡洛光线追踪系列。

2020-05-28

CUDA 专家手册

CUDA 专家手册 , 是一本CUDA学习的必备书籍,内容丰富,适合初学者系统学习CUDA

2019-03-29

cuda计算,opengl显示交互的程序

cuda计算,opengl显示交互的程序,使用GPU作为计算单元,opengl显示和交互。 生成一个波纹,可以用鼠标移动。

2019-03-24

图解TCP_IP第五版中文版

这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。 书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。

2018-11-24

学习opencv书和源码,以及怎么搭建开发环境

学习opoencv的书和书里面的源代码,而且还有vs2015,2013等的开发环境搭建方法,十分适合自学。

2018-11-21

怎么搭建opengl开发环境的讲解文档

全部摘自优秀的博客,这里面会教你快速一步步搭建出opengl开发平台,都是值得珍藏的优秀博客,但是自己搜索可能找不到需要的。同时也可以下载我上传的另一个资料,是opengl在vs2015上的所有开发包,省去自己从官网上下载的麻烦,自己从官网上下载也可能会出错。

2018-11-21

Opengl在VS2015的所有常用开发包

opengl的各种开发工具包,包含glut,freeglut,glew,glfw,glad,等,都是编译好的库,不用自己cmake编译,测试都可用,官网下载整理,适用于VS2015,方便快速搭建平台!

2018-11-21

Opengl中文版第三版

计算机图形学Opengl第三版。是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。

2018-11-21

thinking in C++ 英文版第二版

英文版文字版,非图片扫描模式,所以清晰度很高。中文名《C++编程思想》。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命名控制、引用和拷贝构造函数、运算符重载、动态对象创建、继承和组合、多态和虚函数、模板和包容器类、多重继承、异常处理和运行时类型识别。

2018-10-19

空空如也

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

TA关注的人

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