VC++6.0新手如何使用MFC实现Bresenham算法画圆、画线

第一次接触计算机图形学这东西,也是第一次用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

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值