<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangqinghao的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangqinghao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangqinghao]]></copyright><item><title><![CDATA[信号与信号量的区别[转]]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/49082133</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/49082133</guid><author>wangqinghao</author><pubDate>Mon, 12 Oct 2015 22:56:25 +0800</pubDate><description><![CDATA[信号量(Semaphore)，有时被称为信号灯，是在多环境下使用的一种设施，是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前，线程必须获取一个信号量；一旦该关键代码段完成了，那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程，需要创建一个信号量VI，然后将Acquire Semaphore VI以及Release Sem]]></description><category></category></item><item><title><![CDATA[信号量线程控制]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/48948961</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/48948961</guid><author>wangqinghao</author><pubDate>Wed, 07 Oct 2015 14:47:15 +0800</pubDate><description><![CDATA[（1）信号量说明
在第8 章中已经讲到，信号量也就是操作系统中所用到的PV 原语，它广泛用于进程或
线程间的同步与互斥。信号量本质上是一个非负的整数计数器，它被用来控制对公共资源的
访问。这里先来简单复习一下PV原语的工作原理。
PV原语是对整数计数器信号量sem的操作。一次P操作使sem减一，而一次V操作使
sem 加一。进程（或线程）根据信号量的值来判断是否对公共资源具有访问权限。当]]></description><category></category></item><item><title><![CDATA[GDB详解]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/48833567</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/48833567</guid><author>wangqinghao</author><pubDate>Wed, 30 Sep 2015 22:03:51 +0800</pubDate><description><![CDATA[GDB详解



1 简介
2 生成调试信息
3 启动GDB 的方法
4 程序运行上下文
    4.1 程序运行参数
    4.2 工作目录
    4.3 程序的输入输出
5 设置断点
    5.1 简单断点
    5.2 多文件设置断点
    5.3 查询所有断点
6 观察点
7 条件断点
8 维护停止点
9 为停止点设定运行命令
10 调试代码]]></description><category></category></item><item><title><![CDATA[C# 利用系统API 复制大文件(显示进度条)]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/16361415</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/16361415</guid><author>wangqinghao</author><pubDate>Sat, 16 Nov 2013 21:24:15 +0800</pubDate><description><![CDATA[[csharp] view
 plaincopy






using System;  
using System.Collections.Generic;  
using System.ComponentModel;  
using System.Data;  
using System.Drawing;  
using System.Linq;  
using ]]></description><category></category></item><item><title><![CDATA[地理坐标系与投影坐标系]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/16332349</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/16332349</guid><author>wangqinghao</author><pubDate>Fri, 15 Nov 2013 00:06:02 +0800</pubDate><description><![CDATA[说明：椭球体、基准面构成了地理坐标系，即大地坐标系（经纬度）；
椭球体、基准面、投影构成了投影坐标系，即平面坐标系（米）。
UTM与高斯克吕格




投影


投影方式


分带


计算方式




UTM


等角横轴割圆柱


6°


西经180°起自西向东




高斯克吕格


等角横轴切圆柱


6°]]></description><category></category></item><item><title><![CDATA[面试试题]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/14108433</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/14108433</guid><author>wangqinghao</author><pubDate>Sun, 03 Nov 2013 20:26:49 +0800</pubDate><description><![CDATA[[cpp] view
 plaincopy






/************************************************************************/  
/* A+B 
 
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav]]></description><category></category></item><item><title><![CDATA[gluLookAt 函数详解]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/14002077</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/14002077</guid><author>wangqinghao</author><pubDate>Fri, 01 Nov 2013 15:41:58 +0800</pubDate><description><![CDATA[void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,
                                   GLdouble centerx,GLdouble centery,GLdouble centerz,
                                   GLdouble upx,GLdou]]></description><category></category></item><item><title><![CDATA[OpenGL 模型视图变换、投影变换、视口变换]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/13627929</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/13627929</guid><author>wangqinghao</author><pubDate>Wed, 30 Oct 2013 15:03:09 +0800</pubDate><description><![CDATA[产生目标场景的过程类似于用照相机进行拍照：
(1) 把照相机固定在三角架上，并让他对准场景从不同位置观察场景(视图变换)
      gluLookAt
(2) 对场景进行安排，使各个物体在照片中的位置是我们所希望的 移动，旋转或者放大缩小场景中的物体(模型变换)
      glTranslate* ，glRotate* ，glScale*
(3) 选择照相机镜头，并调整放大倍数(调焦]]></description><category></category></item><item><title><![CDATA[error C2381: “exit” : 重定义；__declspec(noreturn) 不同]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/13508547</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/13508547</guid><author>wangqinghao</author><pubDate>Tue, 29 Oct 2013 15:10:05 +0800</pubDate><description><![CDATA[编译OpenGL   Red   Book   的例子时出现错误，
stdlib.h(406)   :   error   C2381:   “exit”:   重定义；__declspec(noreturn)   不同  

  glut.h(146)   :   参见“exit”的声明   
解决方法：#include 
                    #include 
]]></description><category></category></item><item><title><![CDATA[（经典）ANSI,ASCII,Unicode的区别与联系]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/11403905</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/11403905</guid><author>wangqinghao</author><pubDate>Sun, 08 Sep 2013 23:10:23 +0800</pubDate><description><![CDATA[快下班时，爱问问题的小朋友Nico又问了一个问题： 
      "sqlserver里面有char和nchar，那个n据说是指unicode的数据，这个是什么意思。" 并不是所有简单的问题都很容易回答，就像这个问题一样。于是我答应专门写一篇BLOG来从头讲讲编码的故事。那么就让我们找个草堆坐下，先抽口烟，看看夜晚天空上的银河，然后想一想要从哪里开始讲起。嗯，也许这样开始比较好…… 
    ]]></description><category></category></item><item><title><![CDATA[使用Unicode(宽字节字符集)兼谈_T与L]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/11400683</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/11400683</guid><author>wangqinghao</author><pubDate>Sun, 08 Sep 2013 22:35:39 +0800</pubDate><description><![CDATA[_T会根据你工程的设置自动转换UNICODE和非UNICODE.   
 L就是转为UNICODE

  Visual C++里边定义字符串的时候，用_T来保证兼容性，是一种数据类型,但是它不会产生结果,被编译系统的预处理系统来解释，VC支持ascii和unicode两种字符类型，用_T可以保证从ascii编码类型转换到unicode编码类型的时候，程序不需要修改。
  如果将来你不打算升]]></description><category></category></item><item><title><![CDATA[C++ 文件操作]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/10756109</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/10756109</guid><author>wangqinghao</author><pubDate>Sat, 31 Aug 2013 18:35:39 +0800</pubDate><description><![CDATA[Basic I/O:ios,istream,ostream,and iostream

File I/O:ifstream,ofstream,and fstream

In-memory I/O with C-style strings:istrstream,ostrstream,and strstream

In-memory I/O with string objects stri]]></description><category></category></item><item><title><![CDATA[深度缓冲区原理以及为什么要用它]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/10083665</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/10083665</guid><author>wangqinghao</author><pubDate>Mon, 19 Aug 2013 20:53:44 +0800</pubDate><description><![CDATA[1.在开始介绍深度缓存之前，先了解一下隐藏表面消除。
     隐藏表面消除（hidden-surface removal）就是消除实心物体被其他物体所遮挡的那部分。实现隐藏表面消除最简单方法就是使用深度缓冲区（又叫Z缓冲区）。
2.深度缓冲区原理
    深度缓冲区原理就是把一个距离观察平面(近裁剪面)的深度值(或距离)与窗口中的每个像素相关联。
    首先，使用glClear(GL_]]></description><category></category></item><item><title><![CDATA[opengl中glPushMatrix()he glPopMatrix()用法小结]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/10022039</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/10022039</guid><author>wangqinghao</author><pubDate>Sat, 17 Aug 2013 11:56:13 +0800</pubDate><description><![CDATA[OpenGL中图形绘制后，往往需要一系列的变换来达到用户的目的，而这种变换实现的原理是又通过矩阵进行操作的。opengl中的变换一般包括视图变换、模型变换、投影变换等，在每次变换后，opengl将会呈现一种新的状态（这也就是我们为什么会成其为状态机）。

        有时候在经过一些变换后我们想回到原来的状态，就像我们谈恋爱一样，换来换去还是感觉初恋好，怎么办？强大的opengl就帮我们提]]></description><category></category></item><item><title><![CDATA[美国科学家M.GoodChild眼中的中国科学]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/8957864</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/8957864</guid><author>wangqinghao</author><pubDate>Tue, 21 May 2013 22:36:14 +0800</pubDate><description><![CDATA[8月末，美国科学院院士M.GoodChild应邀来北京参加第四届国际数据质量大会。会议期间，在中国科学家陪同下，在北京大学勺园咖啡厅，他与本报记者闲聊了一阵中国的科学，记者认为他的一些观点值得中国科技界关注。

    记者：您来中国多少次了？有什么感觉？

    GoodChild：我这是第五次来中国，每一次感觉都不一样。中国的变化发展非常迅速，有点目不暇接。但总的印象是东部比西部发展]]></description><category></category></item><item><title><![CDATA[OpenGL投影变换小结]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/8788482</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/8788482</guid><author>wangqinghao</author><pubDate>Thu, 11 Apr 2013 15:25:04 +0800</pubDate><description><![CDATA[投影变换是一种很关键的图形变换，OpenGL中只提供了两种投影方式，一种是正射投影，另一种是透视投影。不管是调用哪种投影函数，为了避免不必要的变换，其前面必须加上以下两句：
    glMAtrixMode(GL_PROJECTION);
    glLoadIdentity();
事实上，投影变换的目的就是定义一个视景体，使得视景体外多余的部分裁剪掉，最终图像只是视景体内的有关部分。本节将]]></description><category></category></item><item><title><![CDATA[不使用临时变量交换两个整数]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/8695300</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/8695300</guid><author>wangqinghao</author><pubDate>Wed, 20 Mar 2013 10:49:26 +0800</pubDate><description><![CDATA[方法一


   1: x = y - x;
   2: y = y - x;
   3: x = x + y;


方法二


   1: x = x ^ y;
   2: y = x ^ y;
   3: x = x ^ y;]]></description><category></category></item><item><title><![CDATA[用GDB调试程序]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/8683590</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/8683590</guid><author>wangqinghao</author><pubDate>Sun, 17 Mar 2013 14:30:27 +0800</pubDate><description><![CDATA[GDB概述
————
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许，各位比较喜欢那种图形界面方式的，像VC、BCB等IDE的调试，但如果你是在UNIX平台下做软件，你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长，尺有所短”就是这个道理。
一般来说，GDB主要帮忙你完成下面四个方面的功能：
    1、启动你的程序，可以按照你的自]]></description><category></category></item><item><title><![CDATA[Linux makefile 入门实例]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/8681582</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/8681582</guid><author>wangqinghao</author><pubDate>Sat, 16 Mar 2013 17:01:22 +0800</pubDate><description><![CDATA[目的：
      
基本掌握了 make 的用法，能在Linux系统上编程。
环境：
       Linux系统，或者有一台Linux服务器，通过终端连接。一句话：有Linux编译环境。
准备：
       准备三个文件：file1.c, file2.c, file2.h
       
file1.c:
             
#include]]></description><category></category></item><item><title><![CDATA[GIS 缓冲区应用及算法实现]]></title><link>https://blog.youkuaiyun.com/wangqinghao/article/details/8629389</link><guid>https://blog.youkuaiyun.com/wangqinghao/article/details/8629389</guid><author>wangqinghao</author><pubDate>Sat, 02 Mar 2013 17:32:11 +0800</pubDate><description><![CDATA[地理信息空间几何关系分析主要包括邻近度 
(proximity) 分析、叠加分析、网络分析等。缓冲区分析是邻近度分析的一种，缓冲区是为了识别某一地理实体或空间物体对其周围地物的影响度而在其周围建立具有一定宽度的带状区域。缓冲区作为独立的数据层进行叠加分析，可应用到道路、河流、环境污染源、居民点、辐射源等的空间分析，为某种应用目的提供科学依据，另外，结合不同的专业模型，可以在生活、军事、城乡规划等]]></description><category></category></item></channel></rss>