| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5904 人关注过本帖
标题:[求助] 用C语言如何实现 直线DDA算法(计算绘图里面的)  要源代码
只看楼主 加入收藏
海哑
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-8
收藏
 问题点数:0 回复次数:7 
[求助] 用C语言如何实现 直线DDA算法(计算绘图里面的)  要源代码
估计大约只要10行左右的程序就够了吧
搜索更多相关主题的帖子: 源代码 C语言 DDA 算法 直线 
2007-09-08 00:27
fengyun5_1
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-4-7
收藏
得分:0 
你把那个DDA算法写一下,大家才能帮你啊!
你连算法都不写,现在,编程的人,可不一定都是数学相当好?(别人可能不学那一种算法!)
这样,谁能给编出源代码啊?

为了找到王子,你必须要和很多只青蛙接吻!
2007-09-08 09:08
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 

//DDA算法绘制直线,以前学过一点,不知道楼主是不是要这个
void DDALine(int x0,int y0,int x1,int y1,int color)
{
int x;
float dx,dy,y,k;
dx=x1-x0 ;
dy=y1-y0;
k=dy/dx;
y=y0;
for(x=x0;x<=x1;x++)
{ putpixel(x,(int)(y+0.5),color); //在屏幕上画一个点
y=y+k;
}
}


英者自知,雄者自胜
2007-09-08 09:50
jingjingyls
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-12
收藏
得分:0 
DDA(数字微分分析器)算法就是基本增量算法。算法如下:
void line(int x0,int y0,int x1,int y1,int value)//-1<=m<=1,x0<x1
{
int x; //x以单位步长从x0增长到x1
float dy,dx,y,m;
dy=y1-y0;
dx=x1-x0;
m=dy/dx;
y=y0;
for(x=x0;x<x1;x++)
{
writePixxel(x,(int)floor(y+0.5),value);//像素值为value
y+=m; //y移动的步长是斜率m
}
}
建议使用更优的中点线算法!

2007-09-08 09:56
海哑
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-8
收藏
得分:0 

DDA算法如下:
设直线的起点为(x1,y1)终点为(xn,yn).则斜率K=DY/DX
直线的各个像素点可以用以下简单语句表示
第一点:起点(x1,y1)
第二点:x2=x1+1, y2=取整[y1+k+0.5]
第三点:x3=x2+1, y3=取整[y2+k+0.5]
.
.
.

终点:xn=x(n-1) +1,yn=取整[yn-1 +k+0.5]

也就是是X轴上的增量:X++
Y轴上的增量:INT(y+k+0.5)

以上确定了显示屏上各个像素的算法
怎么用C实现?


其实最终就是画一条直线在屏幕上


2007-09-08 09:58
海哑
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-8
收藏
得分:0 


谢谢,

是不是很有主函数没有写啊.帮人帮到底哈,感激

2007-09-08 11:23
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用海哑在2007-9-8 11:23:28的发言:


谢谢,

是不是很有主函数没有写啊.帮人帮到底哈,感激

帮你帮到底是不是你就不用打代码直接抄一份交了?还需要不需要把程序都调试好啊?
如果你觉得那个函数写的没错,了解清楚算法以后你就自己打代码



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/

2007-09-08 11:27
海哑
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-8
收藏
得分:0 
说得我很不好意思了.呵.呵.谢谢大家,我已经做完了.
2007-09-08 15:43
快速回复:[求助] 用C语言如何实现 直线DDA算法(计算绘图里面的)  要源 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016031 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved