首页 > 搜索 > dda斜率画线算法,计算机图形学学习记录(一) —— DDA画线算法

dda斜率画线算法,计算机图形学学习记录(一) —— DDA画线算法

互联网 2020-10-31 09:58:43
在线算命,八字测算命理
数值微分DDA(Digital Differential Analyzer)画线算法

首先在这里给不想读大篇幅的朋友,直接写上DDA算法的核心实现代码:

DDA算法代码

上面这个只针对斜率绝对值小于1的。

// 实现DDA算法。// author: 赵天宇// date : 2018/03/09void DDADrawLine::LineDDA(int x0, int y0, int x1, int y1){float x = 0.0;float y = 0.0;float m = 0.0;// 添加增量,实现增量思想float dx = x1 - x0;float dy = y1 - y0;if (dx != 0){m = dy / dx;if (m = -1){y = y0;for (x = x0; x1 || m < -1){m = 1 / m;x = x0;for (y = y0; y abs(dy)){steps = abs(dx);}else{steps = abs(dy);}delta_x = (GLfloat)dx / (GLfloat)steps;delta_y = (GLfloat)dy / (GLfloat)steps;x = xa;y = ya;//glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POINTS);glVertex3f(x, y, 0);for (int i = 1; ixs >> ys >> xe >> ye;glutInitWindowPosition(50, 100);glutInitWindowSize(500, 500);glutCreateWindow("DDA画线算法");glClearColor(1.0, 1.0, 1.0, 1.0);glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0, 500, 0.0, 500.0);glutDisplayFunc(lineSegement);glutMainLoop();}// 实现DDA算法。// author: 赵天宇// date : 2018/03/09void DDADrawLine::LineDDA(int x0, int y0, int x1, int y1){float x = 0.0;float y = 0.0;float m = 0.0;// 添加增量,实现增量思想float dx = x1 - x0;float dy = y1 - y0;if (dx != 0){m = dy / dx;if (m = -1){y = y0;for (x = x0; x1 || m < -1){m = 1 / m;x = x0;for (y = y0; y abs(dy)){steps = abs(dx);}else{steps = abs(dy);}delta_x = (GLfloat)dx / (GLfloat)steps;delta_y = (GLfloat)dy / (GLfloat)steps;x = xa;y = ya;//glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POINTS);glVertex3f(x, y, 0);for (int i = 1; i
免责声明:非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件12小时内删除。

相关阅读

一周热门

查看更多