C++
文章平均质量分 85
zaffix
这个作者很懒,什么都没留下…
展开
-
Win32多线程编程练习
练习一:创建一个工作线程,主线程等待此线程返回后再继续执行(纯粹练习API用,无甚意义)。因为线程间没有共享的资源,这里没有做多线程同步。如果工作线程里要使用 cout#include #include #include unsigned __stdcall SimpleThread(void* pParam){ ::Sleep(3000); return 0;}原创 2011-11-24 23:09:48 · 1107 阅读 · 1 评论 -
圆与扇形碰撞检测
圆与扇形的碰撞检测,以前用过一种算法是这样的:首先把扇形视作一个圆,排除圆与扇形圆不相交的情况,然后如果圆心在扇形两条边中间,则必然相交,剩下的就判断圆是否与两条边相交。这种算法用到了点与直线的关系,圆与线段的碰撞检测,圆与圆的碰撞检测等,算法清晰,实现起来比较简单,但只能适用于扇形夹角小于180度的情况。今天偶尔想到了一种新的算法:首先把扇形视作一个圆,排除圆与扇原创 2014-05-08 22:37:38 · 8933 阅读 · 2 评论 -
圆与三角形碰撞检测
圆与三角形之间的碰撞检测算法可以综合运用之前写过的基本图形间的碰撞检测算法。如果圆心在三角形内,则三角形与圆必然相交,转换为判断点在三角形内,参考:判断点是否在三角形内;如果圆与三角形任一条边相交,则三角形与圆必然相交,转换为圆与线段相交,参考:圆与线段碰撞检测;算法实现如下:#ifndef __CIRCLE_TIRANGLE_INTERSECTION_H__#define原创 2014-05-07 20:39:38 · 4177 阅读 · 0 评论 -
判断点是否在三角形内
判断点是否在三角形内,最常使用的算法是原创 2014-05-04 22:19:54 · 8027 阅读 · 1 评论 -
圆与线段碰撞检测
圆与线段的碰撞检测算法利用了一个向量在另一个向量的投影的原理。假设向量p1p为v1, 向量p1p2为v2,p0为v1在v2上的投影点,则p1p0为v1在v2上的投影。两个向量点乘v1.dot(v2) = v1.length() * v2.length() * cos(theta) = x1 * x2 + y1 * y2,当v2经过单位化后,点乘的结果就变成的投影向量p1p0的长度,设为u。原创 2014-05-06 21:39:55 · 6207 阅读 · 0 评论 -
圆与矩形碰撞检测
圆与矩形的碰撞检测,假设矩形中心点v0, 上边中心点v1, 右边中心点v2, 圆心v, 圆半径r, 矩形半宽w1, 矩形半高h1,。v0为矩形的坐标系原点,(v0,v2)为矩形坐标系x轴,(v0,v1)为矩形坐标系y轴,圆心到矩形y轴距离为w2, 圆心到矩形x轴距离为h2,如图所示:根据图示可以很容易的写出圆与矩形的碰撞检测算法:#ifndef __CIRCLE_RECTANG原创 2014-05-05 21:41:30 · 10287 阅读 · 4 评论 -
练习使用 socket 发送简单的 HTTP GET 请求
最近项目中有这样的需求,需要在游戏中内嵌手机验证模块,而手机绑定信息保存在运营后台,游戏服务器无法直接访问,所以就需要游戏服务器向运营后台发送一些 HTTP 请求来获取这类的信息。因为这部分功能写在服务端,为了尽量避免服务器阻塞,在 recv 前加了 select 操作,并且为每个 HTTP 请求分配了一个线程。这里是针对此需求做的一些练习。#include #include原创 2013-02-06 10:11:49 · 4218 阅读 · 0 评论 -
练习使用 STL sort 对容器进行排序
主要练习使用 std::sort 对 std::vector, std::string 等进行排序,并学习如何通过指定自定义排序方法或者重载 operator #include #include #include #include #include struct Vec2D { float x; float y; Vec2D() : x(0.f),原创 2013-02-05 15:57:15 · 3709 阅读 · 0 评论 -
Win32 平台 C++ socket 编程练习
使用C++实现Win32平台的TCP/IP网络编程,练习socket的使用。服务端:#include #include const unsigned short LISTEN_PORT = 8700;int main(int argc, char* argv[]){ using namespace std; WORD wVersionRequested原创 2012-02-20 09:21:03 · 5231 阅读 · 0 评论 -
使用C#将C/C++,C#枚举导出成as3格式
最近做一个项目,需要将客户端版移植到flash平台上,服务器端仍然使用原来的。这样服务端定义的一些枚举需要在flash as3中实现一份。as3本身没有枚举这种类型,一般使用 public static const 来模拟实现。如果枚举数量少的话可以把枚举名手动拷贝过去,一旦枚举数量很大工作量会成倍增加,所以需要写一个小程序来自动帮我们做到。原来的项目是用C++写的,之所以使用C#来写这个小程原创 2012-01-30 16:11:46 · 1203 阅读 · 0 评论 -
用C语言写UTF-8编码的文件
为实现用C语言写UTF-8编码的文件,测试了以下两种情况。第一种情况,为 fopen 指定一个编码,然后写入 wchar_t 字符串,最终写入的文件就是UTF-8编码的了,原理不清楚,估计是 fwrite 时对 wchar_t 做了编码转换(如果写入 char 的话就会乱码)。#include #include int main(){ FILE* fp = fopen(原创 2012-01-29 13:29:22 · 30844 阅读 · 1 评论 -
Android NDK重定向std::cout输出到log
Android NDK重定向std::cout输出到log原创 2015-03-12 20:18:18 · 3869 阅读 · 0 评论