第一次接触计算机图形学这东西,也是第一次用vc++6.0这个(zao xin de)软件,鉴于网上这块的学习资料太少了,把自己摸索的一些入门的操作写下来教给大家。
这篇文章主要是教大家如何使用VC++6.0来搭配算法进行画线、画圆。先展示一下我写好的效果图,如果不是你想要的,请绕路:
就简单展示这两个,其他的都是一样的,只是算法不同而已!!!需要我这个工程的,下面有链接哦!
如果上述功能是你想找的,那么就请跟着我一起来吧!
总体步骤:观察算法,确定变量 -> 建立对话框 -> 编写菜单 -> 建立菜单对话框消息映射 -> 编写算法
首先当然是安装VC++6.0(当然有VS的也可以啦,这里拿VC++6.0做演示吧,如果两个软件都没有,这里给你一个:https://www.lanzous.com/i5zbvpc )
- 观察算法,确定变量
打开软件,新建项目
因步骤都差不多,这里就只拿Bresenham画圆算法来做示范吧!
新建好项目后,先观察你的算法,Bresenham算法如下(至于原理,请翻阅其他资料,这里不做解释):
void circleBre(int x0, int y0, double circleBreR)
{
// TODO: Add your command handler code here
double x,y,d;
x=0;
y=(int)circleBreR;
d=int(3-2*circleBreR);
COLORREF rgb=RGB(0,0,225); //添加画笔颜色
while(x<y){
circlePoint(x0,y0,x,y,rgb);
if(d<0){
d=d+4*x+6;
}else{
d=d+4*(x-y)+10;
y--;
}
x++;
}
if(x==y){
circlePoint(x0,y0,x,y,rgb);
}
}
void circlePoint(int x0, int y0, int x, int y, int rgb)
{
// TODO: Add your command handler code here
CClientDC dc(this); //添加上下文,确定画布
dc.SetPixel