<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Coding不眠夜]]></title><description><![CDATA[专注IT技术学习与总结]]></description><link>https://blog.youkuaiyun.com/wry323</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wry323]]></copyright><item><title><![CDATA[Qt视图场景框架之一些“坑”]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/78444070</link><guid>https://blog.youkuaiyun.com/wry323/article/details/78444070</guid><author>wry323</author><pubDate>Sat, 04 Nov 2017 16:04:24 +0800</pubDate><description><![CDATA[这里所谓“坑”也不一定是Qt的bug，主要还是帮助文档不好理解或啃的不够透彻导致，总结一下以免重蹈覆辙绕弯路。]]></description><category></category></item><item><title><![CDATA[Qt视图场景框架之仿射变换（QTransform）]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/78443287</link><guid>https://blog.youkuaiyun.com/wry323/article/details/78443287</guid><author>wry323</author><pubDate>Sat, 04 Nov 2017 14:17:58 +0800</pubDate><description><![CDATA[仿射变换是几何空间的坐标系变换，是最常用的空间坐标系变换之一，在计算机图形图像等领域有着重要的应用。包含的变换操作包括：缩放、旋转、平移、偏移。

数学原理

仿射变换可以简单理解为计算对现有坐标点的缩放、旋转、平移和偏移操作后在新坐标系中的坐标点的的值，在代数实现形式上采用矩阵乘向量的方法计算表示变换过程。

其一般形式如下：



即：

       

 

这个变换可以根据矩阵T中的所选...]]></description><category></category></item><item><title><![CDATA[Qt视图场景框架之SVG]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/78433068</link><guid>https://blog.youkuaiyun.com/wry323/article/details/78433068</guid><author>wry323</author><pubDate>Fri, 03 Nov 2017 11:12:46 +0800</pubDate><description><![CDATA[Qt提供了对SVG图片的基本支持，对外提供了4个基本的类封装，支持SVG图片渲染展示，可以在GUI widget中和视图场景模型中加载使用SVG图片。由于Qt对SVG封装类较少提供的功能接口也较少，对于复杂的SVG操作还需要开发人员自己实现。另外，Qt只支持SVG 1.2 Tiny版本（SVG的一个子集标准），相对于浏览器对SVG标准的全量支持，Qt在渲染超出SVG1.2
 Tiny版本的SVG]]></description><category></category></item><item><title><![CDATA[IP Helper API  (zz)]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/6238475</link><guid>https://blog.youkuaiyun.com/wry323/article/details/6238475</guid><author>wry323</author><pubDate>Thu, 10 Mar 2011 21:42:00 +0800</pubDate><description><![CDATA[<br /><br />IP Helper 是一套用于管理本地网络设置的API（应用程序编程接口）它的功能十分强大，通过使用这一套API，你可以方便的改变计算机的网络设置或者提取有关的信息。而且它还提供了一种消息机制，能够在本地计算机的网络设置发生改变时通知你的应用程序。也就是说以前设置IP，掩码等等另人难以入眠的种种烦琐的工作现在都可以轻松搞定了。而且实际上，它不仅仅能够提取本机的网络设置信息，还能够获得网络上其它计算机的IP使用情况和MAC地址。这正是后面另一篇文章的例子程序中要使用的功能。<br />]]></description><category></category></item><item><title><![CDATA[ c数组与指针学习笔记]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/6200386</link><guid>https://blog.youkuaiyun.com/wry323/article/details/6200386</guid><author>wry323</author><pubDate>Tue, 22 Feb 2011 16:34:00 +0800</pubDate><description><![CDATA[c数组与指针学习笔记【文章作者】: evilkis--------------------------------------------------------------------------------------------------------1.数组的定义int a[5];定义了一个数组a,它可以存放5个整型数据，注意：在定义了一个数组时，编译系统会按照数组类型和数组元素个数来分配一段连续的存储空间来存储数组元素。则数组存放数组a的空间大小为5*sizeof(int)= 20字节。2 数组的]]></description><category></category></item><item><title><![CDATA[结构体内存对齐]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5697110</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5697110</guid><author>wry323</author><pubDate>Sun, 27 Jun 2010 10:31:00 +0800</pubDate><description><![CDATA[<br />结构体内存对齐<br />原文地址：http://hi.baidu.com/dignity99/blog/item/6f549f173bf8811f962b4372.html<br />一、什么是字节对齐,为什么要对齐?<br />    现代计算机中内存空间都是按照byte划分的，从理论上讲似乎对任何类型的变量的访问可以从任何地址开始，但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问，这就需要各种类型数据按照一定的规则在空间上排列，而不是顺序的一个接一个的排放，这就是对齐。<br]]></description><category></category></item><item><title><![CDATA[exit函数和return函数]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5572478</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5572478</guid><author>wry323</author><pubDate>Sun, 09 May 2010 18:53:00 +0800</pubDate><description><![CDATA[1、exit函数和return函数的主要区别是：1）exit用于在程序运行的过程中随时结束程序，exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数，然后会做一些自身的清理工作，同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程，它将删除进程使]]></description><category></category></item><item><title><![CDATA[linux wait函数解析]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5486210</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5486210</guid><author>wry323</author><pubDate>Wed, 14 Apr 2010 18:59:00 +0800</pubDate><description><![CDATA[进程一旦调用了wait，就立即阻塞自己，由wait自动分析是否当前进程的某个子进程已经退出，如果让它找到了这样一个已经变成僵尸的子进程，wait 就会收集这个子进程的信息， 并把它彻底销毁后返回；如果没有找到这样一个子进程，wait就会一直阻塞在这里，直到有一个出现为止。wait（等待子进程中断或结束）相关函数 waitpid，fork表头文件#include#include定义函数 pid_]]></description><category></category></item><item><title><![CDATA[Linux僵尸进程]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5485910</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5485910</guid><author>wry323</author><pubDate>Wed, 14 Apr 2010 17:18:00 +0800</pubDate><description><![CDATA[一、定义：什么是孤儿进程和僵尸进程   僵尸进程：一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。   孤儿进程：一个父进程退出，而它的一个或多个子进程还在运行，那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养，并由init进程对它们完成状态收集工作。示例:    僵尸进程：一个子进程在其父进程还没有调用wait()或w]]></description><category></category></item><item><title><![CDATA[c++虚函数和抽象类]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5393393</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5393393</guid><author>wry323</author><pubDate>Thu, 18 Mar 2010 16:44:00 +0800</pubDate><description><![CDATA[虚函数是c++实现多态的一种机制，基类的虚函数可以有子类的函数重新定义，从而实现函数功能的灵活性。虚函数又分为：普通虚函数和纯虚函数。纯虚函数是一种特殊的虚函数，它的一般格式如下：    class     {        virtual ()=0;        …    };    在许多情况下，在基类中不能对虚函数给出有意义有实现，而把它说明为纯虚函数，它的实现留给该基类的]]></description><category></category></item><item><title><![CDATA[c函数scanf(),printf()等常用格式字符串]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5375094</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5375094</guid><author>wry323</author><pubDate>Fri, 12 Mar 2010 20:03:00 +0800</pubDate><description><![CDATA[%d   短整形,一般占两个字节%u   无符号短整形%ld  长整形,一般占四个字节%c   字符型%s    字符串 主要用在输入输出函数：scanf(),printf()里/a:蜂鸣，响铃 /b:回退：向后退一格 /f:换页 /n:换行，光标到下行行首 /r:回车，光标到本行行首 /t:水平制表 /v:垂直制表 //:反斜杠 /:单引号 /":双引号 /?:问号 /ddd:三位八进]]></description><category></category></item><item><title><![CDATA[strcpy,strncpy,strlcpy,memcpy 用法]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5366099</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5366099</guid><author>wry323</author><pubDate>Wed, 10 Mar 2010 19:17:00 +0800</pubDate><description><![CDATA[1. strcpy我们知道，strcpy 是依据 /0 作为结束判断的，如果 to 的空间不够，则会引起 buffer overflow。strcpy 常规的实现代码如下（来自 OpenBSD 3.9）：char * strcpy(char *to, const char *from){       char *save = to;       for (; (*to = *from)]]></description><category></category></item><item><title><![CDATA[volatile 介绍（转载）]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/5249206</link><guid>https://blog.youkuaiyun.com/wry323/article/details/5249206</guid><author>wry323</author><pubDate>Sat, 23 Jan 2010 20:24:00 +0800</pubDate><description><![CDATA[一个定义为volatile的变量是说这变量可能会被意想不到地改变，这样，编译器就不会去假设这个变量的值了。精确地说就是，优化器在用到这个变量时必须每次都小心地重新读取这个变量的值，而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子：     1). 并行设备的硬件寄存器（如：状态寄存器）     2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic var]]></description><category></category></item><item><title><![CDATA[C#中class与struct的区别 ]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/2584610</link><guid>https://blog.youkuaiyun.com/wry323/article/details/2584610</guid><author>wry323</author><pubDate>Wed, 25 Jun 2008 10:50:00 +0800</pubDate><description><![CDATA[转贴自冷菜http://blog.yesky.com/Blog/os586/archive/2005/06/07/141356.html 类与结构的实例比较 　　类与结构的差别　　如何选择结构还是类　　一．类与结构的示例比较：　　结构示例：public struct Person 　　{　　string Name;　　int  height;　　int  w]]></description><category></category></item><item><title><![CDATA[浅析C#中new、override、virtual关键字的区别]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/2584552</link><guid>https://blog.youkuaiyun.com/wry323/article/details/2584552</guid><author>wry323</author><pubDate>Wed, 25 Jun 2008 10:36:00 +0800</pubDate><description><![CDATA[OO思想现在已经在软件开发项目中广泛应用，其中最重要的一个特性就是继承，最近偶简单的复习了下在C#中涉及到继承这个特性时，所需要用到的关键字，其中有一些关键点，特地整理出来，方便大家查阅。一、在C#中，new这个关键字使用频率非常高，主要有3个功能：   a)     作为运算符用来创建一个对象和调用构造函数。b)     作为修饰符。c)      用于在泛型声明中约束可能用]]></description><category></category></item><item><title><![CDATA[C#版数据结构——插入排序]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/2329060</link><guid>https://blog.youkuaiyun.com/wry323/article/details/2329060</guid><author>wry323</author><pubDate>Fri, 25 Apr 2008 21:20:00 +0800</pubDate><description><![CDATA[//插入排序  public void InsertionSort() ...{  int inner,temp;  for (int outer = 1;outer  upper ;outer++ )  ...{   temp = arr[outer];   inner = outer;   while (inner > 0 && arr[inner - 1] > temp)   .]]></description><category></category></item><item><title><![CDATA[C#版数据结构——简单选择排序]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/2324366</link><guid>https://blog.youkuaiyun.com/wry323/article/details/2324366</guid><author>wry323</author><pubDate>Thu, 24 Apr 2008 17:33:00 +0800</pubDate><description><![CDATA[//简单选择排序 public void SelectionSort()...{  int temp,min;  for (int outer = 0;outer  upper ;outer++ )  ...{   min = outer;    for (int inner = outer + 1;inner upper ;inner++ )    ...{    if (arr[i]]></description><category></category></item><item><title><![CDATA[C#版数据结构——冒泡排序]]></title><link>https://blog.youkuaiyun.com/wry323/article/details/2324274</link><guid>https://blog.youkuaiyun.com/wry323/article/details/2324274</guid><author>wry323</author><pubDate>Thu, 24 Apr 2008 17:19:00 +0800</pubDate><description><![CDATA[最近在研究c#数据结构，分享一下与各位交流:  冒泡排序： public void BubbleSort() //冒泡排序   ...{       int temp;       for(int outer = upper; outer >= 1; outer--)    ...{      for(int inner = 0; inner  outer-1;inner++)    ]]></description><category></category></item></channel></rss>