- 博客(7)
- 资源 (13)
- 收藏
- 关注
原创 Cohen-Sutherland直线段的裁剪算法
该算法又称编码算法,裁剪窗口的四条边所在的直线可以把平面分为9个区域,对各个区域的编码包括四位也就是内0外1(比如x坐标小于left记为1,其它记为0),裁剪窗口所在的区域为0000,对于直线段上的端点进行编码,等于该端点所在的区域的编码。编码后就容易判断两个端点的情况,比如求与不等于0,该线段在裁剪窗口之外。具体算法代码如下:typedef struct { unsigned i
2017-02-24 15:56:07 5089
原创 区域填充的扫描线算法
区域填充的扫描线算法适用于内点表示的4连通区域。算法的基本过程是:给定种子点(x, y),先填充种子点所在扫描线上的位于给定区域的区段,然后确定与该区段相连通的上下两条扫描线上的位于给定区域的区段,并保存下来。对保存下来的区段,反复这个过程,直到没有要处理的区段为止。如下图所示:一个原来是灰色的田字和三角形区域,使用鼠标在区域里面点击一下,就会被填充为青色。以下是填充函数的主要代码
2017-02-24 13:38:42 2664
原创 从字节数组解出int64_t值
通常解析一个int大小的变量,用下面的函数:static inline int parseInt(char *p){return ((0xff & *(p+0)) | ((0xff & *(p+1)) | ((0xff & *(p+2)) | ((0xff & *(p+3)) }如果解析一个int64_t的变量,用下面的
2017-02-20 17:49:43 1304
原创 B样条曲线的控制
如何使用B样条曲线的起点和终点在其控制顶点的第一个和最后一个上?答案是调整其节点矢量,使其具有k个重复度,k为阶数。比如,k=3,有4个控制点为 {-2.0,0.0,1.0},{-1.0,1.0,0.0},{1.0,0.0,-1.0},{-1.0,-1.0,1.0},就需要有7个节点向量,可以是这样子 {1,1,1,2,3,3,3}得到的图形:这样的B样条曲线叫做准均匀B样
2017-02-16 19:13:36 4688
原创 使用中点法画直线的程序
计算机图形学里有提到中点法画直线,只是针对x0void MiddlePointLine(HDC hdc, int x0, int y0, int x1, int y1){ bool swap = false;//swap x, y if (abs(x0 - x1) { int t = x0; x0 = y0; y0 = t; t = x1; x1
2017-02-06 14:26:53 1224
原创 使用D2D接口绘制图形
使用微软的GDI绘图的效果可能会很差,因为没有反走样(antialias)处理,比如绘制一条非水平的直线或椭圆,看上去会有明显的不平滑,这是采样不足导致的。而一些其他的绘图方法入GDI plus则对此作了处理。这里介绍的是使用D2D接口实现绘图,可参考windows sdk里的Direct2DHelloWorld例子,首先通过D2D1CreateFactory和DWriteCreateFactor
2017-02-05 17:35:35 2144
DPM算法源码在windows下matlab中使用的修改版
2017-09-09
Cohen-Sutherland直线段的裁剪算法 直线段的裁剪算法
2017-02-24
protobuf-2.6.1.tar.bz2
2016-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人