<wbr id="ede8e"></wbr><bdo id="ede8e"><var id="ede8e"><optgroup id="ede8e"></optgroup></var></bdo>
    1. <sub id="ede8e"></sub>
    2. <sub id="ede8e"></sub>
    3. 18禁无遮挡啪啪无码网站,真人无码作爱免费视频,2018年亚洲欧美在线v,国产成人午夜一区二区三区 ,亚洲精品毛片一区二区,国产在线亚州精品内射,精品无码国产污污污免费,国内少妇人妻偷人精品

      多重透明無(wú)閃爍微機(jī)動(dòng)畫設(shè)計(jì)

      前言:本站為你精心整理了多重透明無(wú)閃爍微機(jī)動(dòng)畫設(shè)計(jì)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

      摘要該文闡述了一種利用EGA/VGA上的位頁(yè)面結(jié)構(gòu)及彩色調(diào)色板來(lái)開(kāi)發(fā)一個(gè)可以處理數(shù)個(gè)快速圖像重疊及優(yōu)美畫面質(zhì)量的動(dòng)畫結(jié)構(gòu)。利用這種技術(shù)不僅會(huì)產(chǎn)生多重透明圖像效應(yīng),而且可用最快的速度畫圖。

      動(dòng)畫設(shè)計(jì)一直是微型計(jì)算機(jī)編程人員的熱門話題,有不少編程人員利用C語(yǔ)言系列中的gentimage()和putimage()函數(shù),在屏幕上不斷畫、擦,產(chǎn)生動(dòng)畫效果。這樣產(chǎn)生的動(dòng)畫有較強(qiáng)的閃爍感,而且動(dòng)畫只能在一致的背景顏色下產(chǎn)生。有些同志采用直接視屏緩沖區(qū)讀、寫,這對(duì)16色的640×480色圖像,要同時(shí)處理分散在4個(gè)彩色頁(yè)面中的圖像,既復(fù)雜又費(fèi)時(shí),而且當(dāng)圖像相交時(shí)很難避免相互影響的問(wèn)題,因?yàn)檫@些部分在緩沖區(qū)中占用了相同的位。

      由于EGA/VGA的4個(gè)頁(yè)面可單獨(dú)被讀出及寫入,如果將圖像存于單一頁(yè)面,這樣就可以免去EGA/VGA中處理分散于各頁(yè)面中圖像的煩人問(wèn)題。可以很容易處理4組圖像,而且在不同頁(yè)面中的圖像不會(huì)互相干擾,但這樣也產(chǎn)生了另一個(gè)問(wèn)題:由于不同頁(yè)面中位的混合產(chǎn)生了新的色彩,相交部分看起來(lái)并不屬于任何圖像。我們所希望的是一個(gè)圖在另一個(gè)圖的前面,并且由前圖可以看到后圖的透明色。

      通過(guò)修改彩色調(diào)色板的值,完全可以達(dá)到上述效果。

      實(shí)際上,來(lái)自各頁(yè)面4位混合的點(diǎn)的顏色是由這4位所指的調(diào)色板值決定的。假設(shè)該點(diǎn)是從4色中選一色,而不是從16色中選一色,如果由彩色頁(yè)面0來(lái)的位為1,則選擇色彩0。

      如果由彩色頁(yè)面1來(lái)的位為1,則選擇色彩1。如果由彩色頁(yè)面2來(lái)的位為1,則選擇色彩2。如果由彩色頁(yè)面3來(lái)的位為1,則選擇色彩3。當(dāng)不止一個(gè)位為1時(shí),只來(lái)自最小號(hào)碼頁(yè)面的位決定顏色,其它頁(yè)面的位則忽略不用。若每個(gè)位均為0,則選擇背景顏色。我們所做的就是重新控制調(diào)色板寄存器使得來(lái)自最高次序頁(yè)面且值為1的位有色彩決定權(quán)。附表列出了上述調(diào)色板值的設(shè)置。

      這樣我們將可以得到4個(gè)顏色及一個(gè)背景色,而且也會(huì)定出一個(gè)簡(jiǎn)單的圖像次序,頁(yè)面0中的圖像在其它頁(yè)面之前,頁(yè)面1中的圖像在頁(yè)面2、3圖像之前,依此類推,而且還有一種透明性,可以由前面圖像的缺口或邊緣看到背后圖像。最重要的是這符合不同圖像存于不同頁(yè)面的標(biāo)準(zhǔn),可以快速處理圖像,從而消除動(dòng)畫閃爍的感覺(jué)。

      下面的程序說(shuō)明位頁(yè)面的動(dòng)畫,它是利用WPS中SPT產(chǎn)生幾幅.SPT圖像,分別裝入不同位面,修改調(diào)色板值產(chǎn)生的重疊透明的動(dòng)畫效果。讀者可以看到在前景(中文字幕)不動(dòng)的情形下,背景(一幅較大的太空夜圖)緩緩移動(dòng),給人一種全新的動(dòng)畫感覺(jué)。

      @@T5S12900.GIF;附表調(diào)色板值設(shè)置@@

      其實(shí),只要對(duì)上面的想法稍作改進(jìn),便能產(chǎn)生更好效果的動(dòng)畫。我們可以只用一、二個(gè)頁(yè)面來(lái)作動(dòng)畫,空出其它的頁(yè)面處理色彩問(wèn)題。例如:利用彩色頁(yè)面3作動(dòng)畫,而用彩色頁(yè)面0、1、2來(lái)提供8種色彩的圖像。讀者不妨親自設(shè)計(jì)一下調(diào)色板的值。

      #include<stdio.h>

      #include<process.h>

      #include<alloc.h>

      #include<mem.h>

      #include<graphics.h>

      #include<dos.h>

      #include<conio.h>

      typedefenum{

      RIGHT,

      LEFT,

      UP,

      DOWN

      }dir-move;

      intmov-spt

      (unsignedchar*filename,

      dir-movedir,

      intstartx,

      intstarty,

      intpage,

      intforg);

      voidmain()

      {

      FILE*fp;

      structpalettetypepal,pall;

      unsignedcharname[30];

      inti,gdriver=DETECT,gmode,errorcode;

      initgraph(&gdriver,&gmode,"");

      errorcode=graphresult();

      if(errorcode!=gr0k)/*anerroroccurred*/

      {

      printf("Graphicserror:%s\n",grapherrormsg(errorcode));

      printf("pressanykeytohalt:");

      getch();

      exit(1);/*returnwitherrorcode*/

      }

      getpalette(&pal);

      pall.size=16;

      for(i=0;i<16;i++)

      pall.colors[i]=LIGHTBLUE;

      setallpalette(&pall);

      move-spt("f2.spt",UP,0,0,1,RED);

      move-spt("f3.spt",DOWN,0,0,2,YELLOW);

      move-spt("f4.spt",LEFT,0,0,3,BLUE);

      move-spt("f5.spt",RIGHT,0,0,4,7);

      getch();

      setallpalette(&pal);

      outpw(0x3c4,0x0f02);

      closegraph();

      }

      intmove-spt

      (unsignedchar*filename,

      dir-movedir,

      intstartx,

      intstarty,

      intpage,

      intforg)

      i,j,wid,hei,row,col,tmp;

      intoffset,offset1;

      structpalettetypepal,pall;

      unsignedcharbuffer[200],bit-page;

      unsignedcharfar*video;

      unsignedcharfar*mirror;

      FILE*fp;

      if((fp=fopen(filename,"rb"))==NULL)

      {

      printf("Cannotopenfile%s.\n",filename);

      exit(1);

      }

      bit-page=(0x01<<((page-1)%4));

      pall.size=16;

      getpalette(&pal);

      for(i=0;i<16;i++)

      {

      if(i&bit-page)

      pall.colors[i]=forg;<

      else

      pall.colors[i]=pal.colors[i];

      }

      setallpalette(&pall);

      if((mirror=(unsignedcharfar*)farmalloc(sizeof(unsignedchar)*384001))==NULL)

      {

      printf("Memoryallocationerror!\n");

      exit(1);

      }

      memset(mirror,0,384001);

      fseek(fp,341,SEEK-SET);

      fread(&wid,sizeof(int),1,fp);

      fread(&hei,sizeof(int),1,fp);

      if(wid>640||(hei>480))

      {

      printf("Sorry.Imagetoolarge.\n");

      exit(1);

      }

      fseek(fp,641,SEEK-SET);

      if((startx+wid)>640)startx=640-wid;

      if((starty+hei)>480)starty=480-hei;

      for(i=0;i<hei;i++)

      {

      offset=(i+starty)*80+startx/8;

      fread(buffer,sizeof(unsignedchar);wid/8,fp);

      for(j=0;j<wid/8;j++)

      buffer[j]=buffer[j]^0xff;

      movmem(buffer,(mirror+offset),wid/8);

      }

      outp(0x3c4,0x02);

      outp(0x3c5,bit-page);

      switch(dir)

      {

      caseRIGHT;

      for(col=0;col<640;col+=2)

      {

      tmp=(640-col)/8;

      for(i=0;i<480;i++)

      {

      offset=i*80;

      offset=i*80+tmp;

      vodeo=(unsignedcharfar*)MK-FP(0xa000,offset1);

      movmem((mirror+offset),video,(col)/8);

      }

      }

      break;

      caseLEFT;

      for(col=639;col>=0;col-=3)

      {

      for(i=0;i<480;i++)

      {

      offset1=(col+7)/8+i*80;

      offset=i*80;

      video=(unsignedcharfar*)MK-FP(0xa000,offset1);

      movmem((void*)(mirror+offset),(void*)video,(640-col)/8);

      }

      }

      break;

      caseUP;

      for(row=479;row>=0;row-=1)

      {

      for(i=0;i<480-row;i++)

      {

      offset1=row*80;

      offset=(479-row)*80;

      video=(unsignedcharfar*)MK-FP(0xa000,offset1);

      movmem((mirror+offset),video,80);

      }

      }

      break;

      caseDOWN:

      for(row=0;row<480;row+=1)

      {

      for(i=0;i<row+;i++)

      {

      offset1=row*80;

      offset=offset1;

      movmem((mirror+offset),(video+offset1),80);

      }

      }

      break;

      }

      farfree(mirror);

      fclose(fp);

      return(0);

      主站蜘蛛池模板: 国产午夜福利在线视频| 日韩中文字幕有码av| 一区二区三区国产不卡| 老司机午夜福利视频| 国产95在线 | 欧美| 国产午夜福利片在线观看| 国产精品亚洲综合一区二区| 亚洲精中文字幕二区三区| 中文字幕成人精品久久不卡| 久久精品国产亚洲精品2020| 在线免费播放av观看| 日本激情久久精品人妻热| 18禁精品一区二区三区| 亚洲最大成人免费av| 毛片无遮挡高清免费| 日韩一区二区三区一级片| 蜜臀av午夜精品福利| 亚洲色大成网站WWW永久麻豆| 国产欧美日韩高清在线不卡| 中文字幕亚洲综合久久| 久久精品国产精品第一区| 国产线播放免费人成视频播放| 久久中文字幕日韩无码视频| 美腿丝袜亚洲综合第一页| 99久久精品费精品国产一区二 | 亚洲伊人久久综合影院| 亚洲一区二区三区日本久久| 免费现黄频在线观看国产| 亚洲开心婷婷中文字幕| 亚洲成人av在线系列| 欧美丰满熟妇xxxx性ppx人交| 夜夜躁日日躁狠狠久久av| 亚洲另类激情专区小说图片| 97人妻中文字幕总站| 韩国午夜福利片在线观看| 五月天免费中文字幕av| 青青草无码免费一二三区| 色偷偷天堂av狠狠狠在| 深夜av在线免费观看| 国产精品亚洲二区在线播放| 久久精品国产91久久麻豆|