24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 193  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 086000生物与医药调剂 +3 Feisty。 2026-03-28 7/350 2026-03-29 00:41 by 544594351
[考研] 348求调剂 +3 小懒虫不懒了 2026-03-28 3/150 2026-03-29 00:39 by 544594351
[考研] 求调剂一志愿海大,0703化学学硕304分,有大创项目,四级已过 +7 幸运哩哩 2026-03-22 11/550 2026-03-28 20:27 by 唐沐儿
[考研] 339求调剂,想调回江苏 +6 烤麦芽 2026-03-27 8/400 2026-03-28 10:40 by 烤麦芽
[考研] 一志愿南京航空航天大学材料学硕求调剂 +3 @taotao 2026-03-28 3/150 2026-03-28 10:26 by JourneyLucky
[考研] 291求调剂 +6 HanBeiNingZC 2026-03-24 6/300 2026-03-28 07:55 by baoball
[考研] 求调剂 +4 零八# 2026-03-27 4/200 2026-03-27 18:07 by yu221
[考研] 266求调剂 +11 阳阳哇塞 2026-03-27 12/600 2026-03-27 17:56 by yu221
[考研] 一志愿 西北大学 总分282 英语一62 求调剂 +7 18419759900 2026-03-25 8/400 2026-03-27 16:38 by 18419759900
[考研] 308求调剂 +7 墨墨漠 2026-03-25 7/350 2026-03-27 14:47 by 狂炫麦当当
[考研] 一志愿陕师大生物学071000,298分,求调剂 +5 SYA! 2026-03-23 5/250 2026-03-27 09:29 by 不吃魚的貓
[考研] 317求调剂 +7 蛋黄咸肉粽 2026-03-26 7/350 2026-03-27 02:29 by fmesaito
[考研] 321求调剂 +6 wasdssaa 2026-03-26 6/300 2026-03-26 20:57 by sanrepian
[考研] 281求调剂 +3 亚克西good 2026-03-26 5/250 2026-03-26 19:48 by 不吃魚的貓
[考研] 290分调剂求助 +3 吉祥止止陈 2026-03-25 3/150 2026-03-25 19:58 by barlinike
[考研] 0854人工智能方向招收调剂 +4 章小鱼567 2026-03-24 4/200 2026-03-25 13:29 by 2177681040
[考研] 求调剂 +3 李李不服输 2026-03-25 3/150 2026-03-25 13:03 by cmz0325
[考研] B区考研调剂 +4 yqdszhdap- 2026-03-22 5/250 2026-03-25 08:51 by baoball
[考研] 080500求调剂 +3 zzzzfan 2026-03-24 3/150 2026-03-24 16:38 by barlinike
[考研] 344求调剂 +3 desto 2026-03-24 3/150 2026-03-24 10:09 by 搏击518
信息提示
请填处理意见