24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 191  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂求院校招收 +5 鹤鲸鸽 2026-03-28 5/250 2026-03-29 01:10 by 我是小康
[考研] 一志愿华理,数一英一285求A区调剂 +8 AZMK 2026-03-25 12/600 2026-03-28 18:15 by AZMK
[考研] 调剂 +3 好好读书。 2026-03-28 3/150 2026-03-28 12:04 by 王保杰33
[考研] 352分 化工与材料 +5 海纳百川Ly 2026-03-27 5/250 2026-03-28 03:39 by fmesaito
[考研] 307求调剂 +8 超级伊昂大王 2026-03-24 9/450 2026-03-27 15:34 by 超级伊昂大王
[考研] 279 分 求调剂 +4 睡个好觉_16 2026-03-24 4/200 2026-03-27 15:05 by 醉在风里
[考研] 复试调剂,一志愿南农083200食品科学与工程 +5 XQTJZ 2026-03-26 5/250 2026-03-27 14:49 by 狂炫麦当当
[考研] 308求调剂 +7 墨墨漠 2026-03-25 7/350 2026-03-27 14:47 by 狂炫麦当当
[考研] 考研调剂 +10 呼呼?~+123456 2026-03-24 10/500 2026-03-27 11:46 by wangjy2002
[考研] 329求调剂 +7 钮恩雪 2026-03-25 7/350 2026-03-27 04:28 by wxiongid
[考研] 求调剂 一志愿 本科 北科大 化学 343 +6 13831862839 2026-03-24 7/350 2026-03-26 22:57 by 不吃魚的貓
[考研] 中国科学院深圳先进技术研究院-光纤传感课题组招生-中国科学院大学、深圳理工大学联培 +5 YangTyu1 2026-03-26 5/250 2026-03-26 18:27 by 猫咪猫咪呀
[考研] 263求调剂 +6 yqdszhdap- 2026-03-22 10/500 2026-03-26 13:11 by 公瑾逍遥
[考研] 334分 一志愿武理-080500 材料求调剂 +4 李李不服输 2026-03-25 4/200 2026-03-25 21:26 by 星空星月
[考研] 一志愿中南大学化学学硕0703总分337求调剂 +7 niko- 2026-03-22 7/350 2026-03-25 20:14 by qingfeng258
[考研] 求b区院校调剂 +4 周56 2026-03-24 5/250 2026-03-25 17:12 by yishunmin
[考研] 318求调剂 +3 plum李子 2026-03-23 3/150 2026-03-25 09:42 by 雾散后相遇lc
[考研] 材料专硕找调剂 +5 哈哈哈吼吼吼哈 2026-03-23 5/250 2026-03-24 19:07 by 了了了了。。
[考研] 接收2026硕士调剂(学硕+专硕) +4 allen-yin 2026-03-23 6/300 2026-03-23 15:04 by 汪!?!
[考研] 石河子大学(211、双一流)硕博研究生长期招生公告 +3 李子目 2026-03-22 3/150 2026-03-22 21:01 by 怎么释怀
信息提示
请填处理意见