TanZek's 技术空间
勇往直前,专注于技术...
首页
新随笔
联系
聚合
管理
7 Posts :: 19 Stories :: 13 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
文章分类
(19)
C++(3)
GNU/Linux(2)
Programming(1)
Subject-Study(8)
服务器技术(2)
家教办公系统的开发日志(3)
搜索
最新评论
1. re: VC++编程获取机器的MAC地址
评论内容较长,点击标题查看
--www.daohangweike.com
2. re: Some Sites What I Want To Go.
评论内容较长,点击标题查看
--term paper help
3. re: Some Sites What I Want To Go.
评论内容较长,点击标题查看
--buy thesis
4. re: Some Sites What I Want To Go.
评论内容较长,点击标题查看
--ROSALIEMcintyre
5. re: 计算机图形学---Bresenham画线算法
ujhlk 】
、
--好哥
阅读排行榜
1. VC++编程获取机器的MAC地址(4991)
2. Windows文件关联方式(1490)
3. 海明码的软件实现(1488)
4. Linux下的USB设备,SCSI设备的挂载。(839)
5. Some Sites What I Want To Go.(647)
评论排行榜
1. Some Sites What I Want To Go.(4)
2. C++博客(4)
3. VC++编程获取机器的MAC地址(2)
4. RUNDLL.exe 命令详解(0)
5. 海明码的软件实现(0)
计算机图形学---Bresenham画线算法
Bresenham画线算法。
[初级版]
1
void
Bresenham_line(HDC
&
hdc)
2
{
3
char
a[
20
];
4
double
dx,dy;
5
dx
=
abs(B.x
-
A.x); dy
=
abs(B.y
-
A.y);
6
int
tx
=
(B.x
-
A.x)
>=
0
?
1
:
-
1
;
7
int
ty
=
(B.y
-
A.y)
>=
0
?
1
:
-
1
;
8
int
tag
=
0
;
9
if
(dx
<
dy)
10
{
11
tag
=
1
;
12
double
temp
=
A.x;
//
x1,y1互换
13
A.x
=
A.y;
14
A.y
=
temp;
15
temp
=
B.x;
//
x2,y2互换
16
B.x
=
B.y;
17
B.y
=
temp;
18
temp
=
dx;
//
dx,dy互换
19
dx
=
dy;
20
dy
=
temp;
21
temp
=
tx;
//
tx,ty互换
22
tx
=
ty;
23
ty
=
temp;
24
}
25
int
curx
=
A.x;
26
int
cury
=
A.y;
27
if
(tag)
28
{
29
SetPixel(hdc,cury,
600
-
curx,RGB(
0
,
0
,
0
));
30
sprintf(a,
"
A(%d,%d)
"
,cury,curx);
31
TextOut(hdc,cury,
600
-
curx,a,strlen(a));
32
}
33
else
34
{
35
SetPixel(hdc,curx,
600
-
cury,RGB(
0
,
0
,
0
));
36
sprintf(a,
"
A(%d,%d)
"
,curx,cury);
37
TextOut(hdc,curx,
600
-
cury,a,strlen(a));
38
}
39
double
d
=
2
*
dy
-
dx;
40
while
(cury
<=
B.y
&&
curx
<=
B.x)
41
{
42
if
(d
>=
0
)
43
{
44
d
=
d
+
2
*
(dy
-
dx);
45
cury
+=
ty;
46
}
47
else
48
d
=
d
+
2
*
dy;
49
curx
+=
tx;
50
if
(tag)
51
SetPixel(hdc,cury,
600
-
curx,RGB(
0
,
0
,
0
));
52
else
53
SetPixel(hdc,curx,
600
-
cury,RGB(
0
,
0
,
0
));
54
}
55
if
(tag)
56
{
57
SetPixel(hdc,cury,
600
-
curx,RGB(
0
,
0
,
0
));
58
sprintf(a,
"
B(%d,%d)
"
,cury,curx);
59
TextOut(hdc,cury,
600
-
curx,a,strlen(a));
60
}
61
else
62
{
63
SetPixel(hdc,curx,
600
-
cury,RGB(
0
,
0
,
0
));
64
sprintf(a,
"
B(%d,%d)
"
,curx,cury);
65
TextOut(hdc,curx,
600
-
cury,a,strlen(a));
66
}
67
}
posted on 2006-10-07 06:40
TanZek
阅读(1282)
评论(1)
编辑
收藏
引用
所属分类:
Subject-Study
评论
#
re: 计算机图形学---Bresenham画线算法
2008-07-05 17:12
好哥
ujhlk 】
、
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
计算机图形学---DDA算法
计算机图形学---Bresenham画线算法
操作系统实验(Operating System Experiment)
[转]《数据库原理》练习题及答案
[转]数据库学习笔记
国外大学部分现用教材及教学参考书
递归模型与递归算法的设计
排列问题
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © TanZek