回 帖 发 新 帖 刷新版面

主题:请大家指点迷津

void TfMain::draw_color_map()
{
 int cr,cg,cb;

 ImageColor->Width = Lx * 2;
 ImageColor->Height = Ly * 2;

 Image4s->Width = Lx * 2 * 2;
 Image4s->Height = Ly * 2 * 2;


 ImageColor->Picture->Bitmap->Width = Lx * 2;
 ImageColor->Picture->Bitmap->Height = Ly * 2;

 Image4s->Picture->Bitmap->Width = Lx * 2 * 2;
 Image4s->Picture->Bitmap->Height = Ly * 2 * 2;

    for (int y = 0; y < Ly; y++)
    {
     for (int x = 0; x < Lx; x++ )
     {
       cb = fa[x+1][y+1]*256 > 255 ? 255 : fa[x+1][y+1]*256;
       cb = fa[x+1][y+1]*256 <   0 ?   0 : fa[x+1][y+1]*256;

       cg = fb[x+1][y+1]*256 > 255 ? 255 : fb[x+1][y+1]*256;
       cg = fb[x+1][y+1]*256 <   0 ?   0 : fb[x+1][y+1]*256;

       cr = fc[x+1][y+1]*256 > 255 ? 255 : fc[x+1][y+1]*256;
       cr = fc[x+1][y+1]*256 <   0 ?   0 : fc[x+1][y+1]*256;

       ImageColor->Canvas->Pixels[2*x][2*y] = TColor(RGB(cr,cg,cb));

       ImageColor->Canvas->Pixels[2*x+1][2*y] = TColor(RGB(cr,cg,cb));
       ImageColor->Canvas->Pixels[2*x][2*y+1] = TColor(RGB(cr,cg,cb));
       ImageColor->Canvas->Pixels[2*x+1][2*y+1] = TColor(RGB(cr,cg,cb));

     }

    }
    for (int j=0;j<4;j++)
    for (int i=0;i<4;i++)
    {
    Image4s->Canvas->Draw(2*Lx*i,2*Ly*j,ImageColor->Picture->Bitmap);
    }

    ImageColor->Repaint();
    Image4s->Repaint();
}
上面是一个根据输入的数据来画出相应图形的一个程序,请大家帮忙看看解释几个小问题:
(1)ImageColor->Picture->Bitmap->Width = Lx * 2;是什么意思?它和ImageColor->Width = Lx * 2;有什么区别?
(2)ImageColor->Canvas->Pixels[2*x][2*y] = TColor(RGB(cr,cg,cb));

       ImageColor->Canvas->Pixels[2*x+1][2*y] = TColor(RGB(cr,cg,cb));
       ImageColor->Canvas->Pixels[2*x][2*y+1] = TColor(RGB(cr,cg,cb));
       ImageColor->Canvas->Pixels[2*x+1][2*y+1] = TColor(RGB(cr,cg,cb));
这四句话干什么的?为什么一次要找4个点?
(3) Image4s->Canvas->Draw(2*Lx*i,2*Ly*j,ImageColor->Picture->Bitmap);这句话是干什么的
(4)ImageColor->Repaint();是干什么的
谢谢

回复列表 (共2个回复)

沙发

(1)自己试着调整一下就知道了
(2)他想那么画
(3)去看帮助文件,不会看帮助文件就麻烦了
(4)同上

楼主要努力学英语

板凳


是啊,我好多不知道的。
但是楼主可以查帮助呀。。
好象MSDN里有/
就向后面的那个重绘一样。。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册