| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2807 人关注过本帖
标题:用mfc实现中点画圆但为什么我画出来的只是8分之一的圆?
只看楼主 加入收藏
新月飞鸟
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-10-22
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:4 
用mfc实现中点画圆但为什么我画出来的只是8分之一的圆?
void CTestbView::OnMipCircle()
{
    // TODO: Add your command handler code here
   
    /*int x,y,R;
    double d;
    CInputDlg dlg;
    if(dlg.DoModal()==IDOK)
    {
        x=dlg.m_x;
        y=dlg.m_y;
        R=dlg.m_R;
        
    }
    CDC* pDC=GetDC();
    d=1.25-R;

    pDC->SetPixel(x,y,RGB(255,0,0));
    while(x<y)
    {
        if(d<0)
        {
            d+=2*x+3;
            x++;
        }
        else
        {
            d+=2*(x-y)+5;
            x++;
            y--;
        }
     pDC->SetPixel(x,y,RGB(255,0,0));

    }
    pDC->SetPixel(y,x,RGB(255,0,0));
    pDC->SetPixel(-x,y,RGB(255,0,0));
    pDC->SetPixel(x,-y,RGB(255,0,0));
    pDC->SetPixel(-x,-y,RGB(255,0,0));
    pDC->SetPixel(-y,x,RGB(255,0,0));
    pDC->SetPixel(y,-x,RGB(255,0,0));
    pDC->SetPixel(-y,-x,RGB(255,0,0));
    ReleaseDC(pDC);*/
搜索更多相关主题的帖子: command double 
2012-10-28 20:27
cqtddt
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:49
注 册:2011-10-28
收藏
得分:5 
你的程序和你输入对话框中的值有关系,x<y的条件也不对,假如你输入的x>y,只画八个点而已.你要仔细考虑.用Ellipse,再进行画刷填充
2012-10-28 22:47
新月飞鸟
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-10-22
收藏
得分:0 
回复 2楼 cqtddt
我是按照书上写的程序做的,书上说要画出完整的圆只需修改坐标,对称即可,但我画出来的只是第一象限上半部分的圆,而且我也实现不了任意点的圆心画圆,不知道怎么弄!!至于你说的画刷~~~~我们老师都没有说,看来又得自己找资料了~~
2012-10-29 11:26
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:5 
http://www.

我们都在路上。。。。。
2012-10-29 13:06
新月飞鸟
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-10-22
收藏
得分:0 
回复 4楼 hellovfp
谢咯~~~~不过我今天也画出来咯~~
void CTestBView::OnDRAWCircle()
{
    // TODO: Add your command handler code here
    int x0,y0,R,x,y,p;
    CInputDlg dlg;
    if(dlg.DoModal()==IDOK)
    {
        x0=dlg.m_x;
        y0=dlg.m_y;
        R=dlg.m_R;
        
    }
    x=0; y=R;
    CDC* pDC=GetDC();
    p=3-2*R;
    for(;x<y;x++)
    {
    pDC->SetPixel(x+x0,y+y0,RGB(255,0,0));
    pDC->SetPixel(y+x0,x+y0,RGB(255,0,0));

    pDC->SetPixel(-x+x0,y+y0,RGB(255,0,0));
    pDC->SetPixel(x+x0,-y+y0,RGB(255,0,0));
    pDC->SetPixel(-x+x0,-y+y0,RGB(255,0,0));
    pDC->SetPixel(-y+x0,x+y0,RGB(255,0,0));
    pDC->SetPixel(y+x0,-x+y0,RGB(255,0,0));
    pDC->SetPixel(-y+x0,-x+y0,RGB(255,0,0));
        if(p>0)
        {
            p+=4*(x-y)+10;
            y--;
        }
        else
            p+=4*x+6;

    }


        ReleaseDC(pDC);
   
}
2012-10-29 21:40
快速回复:用mfc实现中点画圆但为什么我画出来的只是8分之一的圆?
数据加载中...
 
   



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

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