24小时热门版块排行榜    

Znn3bq.jpeg
查看: 197  |  回复: 2
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 tc1788 的 1 个金币

tc1788

铁虫 (小有名气)

[交流] 【求助】改变坐标原点的小程序 这么写对吗

最后一个函数 注释的是源程序 注释下面的语句是我自己改的
坐标原点变了 DRAWBMP语句是这么改吗 我改完怎么没有图了啊 帮帮我吧
还用改别的吗
void CSolidSim:rawSolidRound(CDC *pDC, int startx, int starty)
{
       
    CBrush brush;
        brush.CreateSolidBrush(RGB(255,0,0));

        CBrush * oldBrush = pDC->SelectObject(&brush);
       
        //减去 0.5 是为了画出来的图美观,可以去掉。 下面画空心的部分同这个
        pDC->Ellipse(startx, starty, startx + DIAMETER-0.5, starty + DIAMETER-0.5);

        pDC->SelectObject(oldBrush);

        brush.DeleteObject();








void CSolidSim::SaveAsBmp(CString in_name, CString filename)
{
//定义图形大小
        int iWidth = 1000;
        int iHeight = 1000;
    int iPixel  = 16;
        //图形格式参数
    LPBITMAPINFO lpbmih = new BITMAPINFO;
    lpbmih->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    lpbmih->bmiHeader.biWidth = iWidth;
    lpbmih->bmiHeader.biHeight = iHeight;
    lpbmih->bmiHeader.biPlanes = 1;
    lpbmih->bmiHeader.biBitCount = iPixel;
    lpbmih->bmiHeader.biCompression = BI_RGB;
    lpbmih->bmiHeader.biSizeImage = 0;
    lpbmih->bmiHeader.biXPelsPerMeter = 0;
    lpbmih->bmiHeader.biYPelsPerMeter = 0;
    lpbmih->bmiHeader.biClrUsed = 0;
    lpbmih->bmiHeader.biClrImportant = 0;

    //创建位图数据
    HDC hdc,hdcMem;
    HBITMAP hBitMap = NULL;
    CBitmap *pBitMap = NULL;
    CDC *pMemDC = NULL;
    BYTE *pBits;

    hdc = CreateIC(TEXT("DISPLAY",NULL,NULL,NULL);
    hdcMem = CreateCompatibleDC(hdc);
    hBitMap = CreateDIBSection(hdcMem,lpbmih,DIB_PAL_COLORS,(void **)&pBits,NULL,0);
    pBitMap = new CBitmap;
    pBitMap->Attach(hBitMap);
    pMemDC = new CDC;
    pMemDC->Attach(hdcMem);
    pMemDC->SelectObject(pBitMap);
     //
        CRect rc(0,0,iWidth,iHeight);
        pMemDC->SetBkMode(TRANSPARENT);
        DrawBmp(pMemDC,rc,in_name);


    //保存到文件并创建位图结构
    BITMAPFILEHEADER bmfh;
    ZeroMemory(&bmfh,sizeof(BITMAPFILEHEADER));
    *((char *)&bmfh.bfType) = 'B';
    *(((char *)&bmfh.bfType) + 1) = 'M';
    bmfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
    bmfh.bfSize = bmfh.bfOffBits + (iWidth * iHeight) * iPixel / 8;

    TCHAR szBMPFileName[128];
    int iBMPBytes = iWidth * iHeight * iPixel / 8;
    strcpy(szBMPFileName,filename);
    CFile file;
    if(file.Open(szBMPFileName,CFile::modeWrite | CFile::modeCreate))
    {
        file.Write(&bmfh,sizeof(BITMAPFILEHEADER));
        file.Write(&(lpbmih->bmiHeader),sizeof(BITMAPINFOHEADER));
        file.Write(pBits,iBMPBytes);
        file.Close();
    }

    pMemDC->DeleteDC();
    delete pMemDC;        pMemDC  = NULL;
    delete pBitMap; pBitMap = NULL;
    delete lpbmih;  lpbmih  = NULL;
}









void CSolidSim:rawBmp(CDC *pDC, CRect rcClient, CString in_name)
{
CBrush brushCtl;
        brushCtl.CreateSolidBrush(RGB(255,255,255));         
        pDC->SelectObject(&brushCtl);
          pDC->Rectangle(rcClient);
        pDC->FillRect(rcClient,&brushCtl) ;       
        brushCtl.DeleteObject();

        int left = rcClient.left;
        //int top  = rcClient.top;
int bottom  = rcClient.bottom;
         
pDC->MoveTo(left, bottom);
                               
        /*for(int x = 0; x<100 ; x++)
        {
                for(int y = 0; y<0 ; y++ )
                {
                       
                        switch(a[x+y*100])
                        {
                        case 2:
                                DrawBlackRound(pDC, left +y * DIAMETER, top + x * DIAMETER);      
                                break;
                        case 1:
                                DrawSolidRound(pDC, left + y * DIAMETER, top + x * DIAMETER);      
                                break;
         
                        case 0:
                                //nothing to do
                                break;
                        }
                }
        }       

}*/
改为
for(int y = 0; y<100 ; y++)
        {
                for(int x = 0; x<0 ; x++ )
                {
                       
                        switch(a[x+y*100])
                        {
                        case 2:
                                DrawBlackRound(pDC, left +x * DIAMETER, bottom - y * DIAMETER);      
                                break;
                        case 1:
                                DrawSolidRound(pDC, left + x * DIAMETER, bottom - y * DIAMETER);      
                                break;
           
                        case 0:
                                //nothing to do
                                break;
                        }
                }
        }       

}


蓝色为源程序 粉色的我自己改的
坐标原点变了 DRAWBMP语句是这么改吗 我改完怎么没有图了啊 帮帮我吧

[ Last edited by tc1788 on 2009-6-12 at 09:46 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

是不是刷新的图出了边界?

你检查下!
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&amp;amp;amp;say=各位版主辛苦了![/img][/url][/center]
2楼2009-06-12 11:09:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangen994

荣誉版主 (著名写手)

将军

3楼2009-06-12 12:23:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 tc1788 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 面上本子正文33页,违规吗?会被低分嘛? +8 1234567wang 2026-05-17 10/500 2026-05-18 18:52 by zzahkj
[基金申请] 国自然上会要求 +5 无名者登山 2026-05-18 9/450 2026-05-18 17:50 by BlakeReary
[基金申请] 今年审到国自然15份,谈谈感受 +16 国自然国社科中 2026-05-17 16/800 2026-05-18 14:58 by gy116024
[教师之家] 上海大学实验技术岗位非升即走 +8 嘻嘻哈哈乐呵呵 2026-05-15 8/400 2026-05-18 11:53 by ning312
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +5 l7k6xnh0yc 2026-05-14 5/250 2026-05-17 19:39 by Equinoxhua
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 v9tggjlwd0 2026-05-15 5/250 2026-05-17 18:39 by Equinoxhua
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 v9tggjlwd0 2026-05-15 4/200 2026-05-17 08:11 by 11n4dfd8yn
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 v9tggjlwd0 2026-05-15 4/200 2026-05-17 08:06 by 11n4dfd8yn
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 8/400 2026-05-17 07:26 by 11n4dfd8yn
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +6 l7k6xnh0yc 2026-05-14 6/300 2026-05-17 07:16 by 11n4dfd8yn
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +6 l7k6xnh0yc 2026-05-14 6/300 2026-05-17 07:11 by 11n4dfd8yn
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 ky2p12rrjj 2026-05-15 4/200 2026-05-17 00:50 by ue3ir18jc3
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 ky2p12rrjj 2026-05-15 3/150 2026-05-17 00:45 by ue3ir18jc3
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 x0mp7owy2b 2026-05-15 4/200 2026-05-17 00:25 by ue3ir18jc3
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +9 一切都是空工 2026-05-12 20/1000 2026-05-16 19:52 by Equinoxhua
[有机交流] 求助2,4-二氯-5-嘧啶甲醛的合成方法 20+3 光吃不拉 2026-05-14 6/300 2026-05-16 19:46 by Equinoxhua
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[硕博家园] 申请博士 +3 呃?呃 2026-05-15 3/150 2026-05-16 11:01 by a4742549
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[教师之家] 教学课件你会给同学吗 +8 硕士研究生吗 2026-05-13 8/400 2026-05-14 22:23 by 常规沥青
信息提示
请填处理意见