C语言绘图示例-调色板

C语言绘图示例-调色板

16m色真彩调色板 设计制作 
PhotoShop,AutoCad,3DS,Paint等图形图像绘画应用软件都有真彩调色板,供使用者画笔取色用。16m色也就是俗称真彩的全部色彩。
本人试制作商标徽标制作软件,也制作此真彩调色板,今分享给大家,希望大家喜欢。
真彩调色板绘制,画笔取色,应用程序同步绘制调色板。大调色板 16m色设置,小调色板分色调设置,供画笔取色。
应用程序例可参阅本人本站博文调色板设置VB6源码。
Step 8  ,  Step 4  ,  为提高调色板绘出显示速度,此色度肉眼分辨不出。Step 1  ,  为全色调模式,绘制速度慢,可在程序启动时先绘出。

我空余时在安卓手机上用myspringc语言编写的图案绘图示例,可供喜欢的朋友参考。我这所编制的这个示例程序最大的优点是图案随时变换,色彩随机随时变化,颇具观赏性。另加一键全部示例自动演示功能。

MySpringC不仅可以编写简单的C语言程序,而且它能读取手机中各种传感器的数值,控制各种多媒体设备,从而实现让普通用户用C语言控制手机,编写出意想不到的、适合自己使用的应用。

示例图片:

c70701eb35e64d619d86e6a36975e6ac.png

c56dad2f5a9c4213811e9eeb8c225636.png 

 

以下是源码:
//  最简单的 C 语言编程
//  myspringc  v2.7  可编译安卓本机 app 应用
//  此样例可复制黏贴到 myspringc  编译
//  此文档可用 VB,VC  ,  java 改写
//***************************************
//****   C语言绘图示例-调色板  *******
//***************************************
Canvas cs ;     //画布
string sBarDes[10];
int nBarId[10];
string sMenu[50];
int nMenu[50];
float src[4];  //ClearDraw (cls) clear screen
string s,ss,ss1,ss2,ss3;
float sx,sy,dx,dy;
float px,py;
int size[2];
int i,j,n,t,k;    //t=times,n=number
double sn;    //mode number
 int r1,g1,b1;     //16m 全色调色板

main(){
setDisplay(1);
  cs.SetBackground(205,205,205);
  cs.Active();

   sBarDes[0]="演  示";
   nBarId[0]=100;
   sBarDes[1]=" ";
   nBarId[1]=101;
   sBarDes[2]=" ";
   nBarId[2]=102;
   sBarDes[3]="  ";
   nBarId[3]=103;
   sBarDes[4]="退出程序";
   nBarId[4]=104;
   sBarDes[5]=" ";
   nBarId[5]=105;
   setToolBarHeight(6);
   setButtonTextSize(14);
   setToolBarBackgroundColor(255,192,192,192);
   setButtonColor(255,0,0,240);
   setButtonTextColor(255,255,255,0);
   setToolBar(100,myToolBarProc,sBarDes,nBarId,6);

  setTitle("调色板设计   ");
  sn=0;     show_pad();     //程序启动时绘出
while (){}
  }//main ()

show_pad (){ //演示例序
  if (sn==0) colorpad1 ();
  if (sn==1) colorpad2 ();

}//show_pad ()

colorpad1 (){
     cs.SetFillMode (1);//0不填色,1填色
        cs.SetColor (255,0,0,0);
        cs.DrawRect (0,4,720,600);
        cs.SetTextSize (30);    //*** (1) ****
        cs.SetColor (255,240,240,0);
        cs.DrawText (" 真彩调色板 ",20,35);
         n=(int)(sn);
        s=intToString (n);
        ss="mode = "+s ;
        cs.DrawText (ss,550,35);
        cs.Update ();
    //****  16m 全色真彩调色板
//以8为段变色,缩短显示时间。
//此为模拟演示,调色板取色用要逐点绘制
//机器速度快可以逐点绘制
//绘出图寬255*3 ,图高255
//绘出 图片框定标:sx = 3 * 256 , sy = 256
//   canvas.Scale (0, 0)-(768, 255)
//  r1 = 0: g1 = 255: b1 = 255
    //blue
//    for (sx=0;sx<256;sx++){     //blue *******
//         r1 = sx
//       for (sy=0;sy<256;sy++){   
//              g1 = 255 - sy
//      cs.SetColor (255,r1,g1,b1);
//     cs.DrawRect (sx+50,sy+90,sx+50,sy+90); 
//            cs.Update ();     //显示绘出过程
//             }   }
//      r1= 255; g1= 255; b1= 255;     //green
//      for (sx=256;sx<512;sx++){    // green ********
//           r1=512- sx +255;   b1=512 - sx; 
 //     for (sy=0;sy<256;sy++){     
 //          g1= 255 - sy;   
 //          cs.SetColor (255,r1,g1,b1);
 //     cs.DrawRect (sx+50,sy+90,sx+50,sy+90); 
//             cs.Update ();     //显示绘出过程
//                }  }
//      r1= 0; g1= 255; b1= 0;     //red
//      for (sx=513;sx<769;sx++){    // red ********
//           r1=513- sx +255;   
//      for (sy=0;sy<256;sy++){     
//          g1= 255 - sy;   
//           cs.SetColor (255,r1,g1,b1);
//     cs.DrawRect (sx+50,sy+90,sx+50,sy+90); 
//             cs.Update ();     //显示绘出过程
//                }  }
//********
       r1= 0; g1= 255; b1= 255;   //blue
      for (i=0;i<32;i++){     // blue ********
             r1=i*8;       sx=i*6;
     for (j=0;j<32;j++){     
             g1=255-j*8;   sy=j*8;
             cs.SetColor (255,r1,g1,b1);
       cs.DrawRect (sx+50,sy+90,sx+58,sy+98); 
            //  cs.Update ();     //显示绘出过程
                }   }
      r1= 255; g1= 255; b1= 255;    //green
       for (i=32;i<64;i++){    // green ********
            r1=511- i*8 +255;   b1=511- i*8; sx=i*6;
       for (j=0;j<32;j++){     
            g1= 255 - j*8;   sy=j*8 ;
            cs.SetColor (255,r1,g1,b1);
       cs.DrawRect (sx+50,sy+90,sx+58,sy+98); 
               cs.Update ();     //显示绘出过程
                  }  }
        r1 = 0; g1 = 255; b1 = 0;    //red
      for (i=64;i<96;i++){    // red ********
              r1= i*8-511+255;  sx=i*6 ;
      for (j=0;j<32;j++){
             g1=255 -j*8;   sy=j*8 ;
             cs.SetColor (255,r1,g1,b1);
       cs.DrawRect (sx+50,sy+90,sx+58,sy+98); 
             //  cs.Update ();     //显示绘出过程
                }    }
    cs.SetColor (255,240,200,100);
    cs.SetTextSize (40);    
    cs.DrawText (" 16m色  真彩调色板 示例",110,400);
        cs.Update ();
}//colorpad1 ()

colorpad2 (){
    cs.SetFillMode (1);//0不填色,1填色
        cs.SetColor (255,0,0,0);
        cs.DrawRect (0,4,720,600);
        cs.SetColor (255,200,250,0);
        cs.SetTextSize (30);    //*** (2) ****
        cs.DrawText (" 七色彩带调色板 ",20,35);
        n=(int)(sn);
        s=intToString (n);
        ss="mode = "+s ;
        cs.DrawText (ss,550,35);
        cs.Update ();
     for (i=0;i<256;i++){  //七色彩带 (2) 调色板
            cs.SetColor (255,255,i,0);
                cs.DrawLine (i/2+50,350,i/2+50,550);
                cs.DrawLine (600,i/2+40,710,i/2+40);
           cs.SetColor (255,255-i,255,0);
                cs.DrawLine (i/2+178,350,i/2+178,550);
                cs.DrawLine (600,i/2+168,710,i/2+168);
          cs.SetColor (255,0,255-i/2,i);
                cs.DrawLine (i/2+306,350,i/2+306,550);
                cs.DrawLine (600,i/2+296,710,i/2+296);
             //  cs.Update ();     //显示绘出过程
                     }
     for (i=0;i<256;i++){  //七色彩带 调色板
           cs.SetColor (255,i/2,128-i/2,255);
                cs.DrawLine (i/2+434,350,i/2+434,550);
                cs.DrawLine (600,i/2+424,710,i/2+424);
              cs.Update ();     //显示绘出过程
                    }
     cs.SetFillMode (0);//0不填色,1填色
           cs.SetColor (255,255,255,255);
     cs.DrawRect (50,50,560,300);
     cs.DrawRect (50,350,560,550);
        cs.SetColor (255,240,200,100);
        cs.SetTextSize (40);    
        cs.DrawText (" 七色彩带调色板 示例",110,190);

            cs.Update ();
}//colorpad2 ()

myToolBarProc(int nBtn,int nContext){
      if(nBtn==100){//演示
          cs.SetBackground(245,245,245);
          setDisplay (1);
      sn=sn+1;
             if (sn>1) sn=0 ;    
             show_pad ();
                       }  
      if(nBtn==101){//mode+
            sn=sn+1;
            if (sn>9)sn=9;
            show_pad ();
            }
      if(nBtn==102){//mode -
            sn=sn-1;
            if (sn<1)sn=1;
            show_pad ();
             }
      if(nBtn==103){//显示图板
           setDisplay (1);
         }

      if(nBtn==104){//退出程序
         clearOutput();
         cs.ClearDraw (0,src);
         setDisplay (0);
          exit (0);
         }
     if(nBtn==105){// 
          setDisplay (1);
          //cover ();   
          }
}//myToolBar ()

 

//== End ==

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值