资源简介
用DDA、中点画线法、Bresenham算法绘制4个象限的直线。
代码片段和文件信息
#include
#ifdef __APPLE__
#include
#else
#include
#endif
#include
#include
#include
void init (void)
{
glClearColor (1.0 1.0 1.0 0.0); // Set display-window color to white.
glMatrixMode (GL_PROJECTION); // Set projection parameters.
gluOrtho2D (0.0 200.0 0.0 150.0);
}
int round(const float a)
{
return (int)(a+0.5);
}
void lineWithMP(GLint x0 GLint y0 GLint xn GLint yn)
{
GLint a = yn - y0;
GLint b = -(xn - x0);
GLint c = xn*y0 - x0*yn;
GLint deltaA = 0;
GLint deltaB = 0;
if(0 != a)
{
deltaA = a / fabs(float(a));
}
if(0 != b)
{
deltaB = -1 * b / fabs(float(b));
}
GLfloat x = x0;
GLfloat y = y0;
glColor3f(0.01.00.0);
glPointSize(3.0f);
if(fabs(float(a)) {
GLint steps = fabs(float(b));
for(GLint i = 0; i < steps; i ++)
{
// 注意屏幕坐标系和世界坐标系的不同。也就是为什么是大于 0
if(0 < (a * (x + 1) + b * (y + 0.5) + c))
{
y += 1 * deltaA;
}
x += 1 * deltaB;
glBegin(GL_POINTS);
glVertex2i(x y);
glEnd();
glFlush();
}
}
else
{
GLint steps = fabs(float(a));
for(GLint i = 0; i < steps; i ++)
{
if(0 <= (a * (x + 1) + b * (y + 0.5) + c))
{
x += 1 * deltaB;
}
y += 1 * deltaA;
glBegin(GL_POINTS);
glVertex2i(x y);
glEnd();
glFlush();
}
}
}
void lineDDA(int x0int y0int xEndint yEnd)
{
glColor3f(0.00.01.0);
glPointSize(3.0f);
int dx = xEnd - x0;
int dy = yEnd - y0;
int stepsk;
float xIncrementyIncrementx = x0y = y0;
if(fabs(float(dx)) > fabs(float(dy)))
steps = fabs(float(dy));
else
steps = fabs(float(dx));
xIncrement = (float)(dx)/(float)(steps);
yIncrement = (floa
相关资源
- 计算机图形学 Cohen- Sutherland直线段裁
- Hough变换 C 语言实现
- C++最小二乘法拟合直线
- 直线反走样算法
- 用MFC画直线椭圆矩型可选择线条颜色
- 计算机图形学 直线裁剪算法
- HOUGH_LINE.cpp
- 基于openGl的画直线和三角形光栅化源
- 画图程序最新版 MFC/VC/VC++ 很多功能哦
- 计算机图形学直线段的扫描转换C++实
- 用C++模拟直线插补没有图形
- 利用VC++编写的直线圆弧插补的实现
- Bresenham直线算法的C++实现
- MFC单文档画图(直线矩形有注释)
- 二维区域图形裁剪
- MFC铅笔直线矩形菱形 算法
- 用c++模拟直线插补和圆弧插补二.cpp
- 用c++模拟直线插补和圆弧插补一.cpp
- 用C++模拟直线插补图形
- C++ Wu直线反走样实现代码
- 计算机图形学直线、圆、多边形画法
- 激光雷达数据读取、显示、分割、直
- 画线算法C++的实现-鼠标交互
- 梁友栋-Barsky直线裁剪算法 VC实现
- hough检测直线的程序
- 基于VC6.0的Bresenham直线算法
- Liang-Barsky直线段剪裁算法
- LSD直线提取算法Opencv
- 基于OpenGL的DDA算法画直线段
- 两点式求点到直线的距离
评论
共有 条评论