91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 157KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-16
  • 語言: C/C++
  • 標簽:

資源簡介

好玩的C語言代碼

資源截圖

代碼片段和文件信息

/****************************************************
?*?程序名稱:實現水波紋顯示 *
?*?編譯環境:Visual?C++?6.0,EasyX?20130114(beta) *
?*?作  者:豪?(QQ:?415051674)? *
?*?核心算法:參考網上算法 *
?*?最后修改:2013/3/20 *
?****************************************************/


#include??????
#include?
#include?

#define?PIC_HEIGHT?600
#define?PIC_WIDTH??800

void?frameFun(); //?幀邏輯函數,處理每一幀的邏輯
void?RenderFun(); //?幀渲染函數,輸出每一幀到顯示設備

IMAGE?src_img; //?原位圖
IMAGE?dest_img(PIC_WIDTH?PIC_HEIGHT); //?處理后顯示的位圖
DWORD?*img_ptr1; //?原圖片片內存指針
DWORD?*img_ptr2; //?處理后顯示的位圖內存指針


//?以下兩個?buf?為每一個點的波幅,前者為當前波幅,后者為下一個時刻的波幅。
short?*buf??=?new?short[PIC_HEIGHT*PIC_WIDTH+PIC_WIDTH];
short?*buf2?=?new?short[PIC_HEIGHT*PIC_WIDTH+PIC_WIDTH];


void?main()
{
//?初始化設備,加載圖片
????initgraph(PIC_WIDTH?PIC_HEIGHT);?
SetWindowText(GetHWnd()?“Wave-水波紋效果(點擊產生一個水波紋。移動鼠標連續產生水波紋)“);
????loadimage(&src_img?“water.jpg“); //?加載圖片,大小:800*600
setbkmode(TRANSPARENT);
settextcolor(BLACK);
setfont(25?0?“Arial“);

//?獲得內存指針
img_ptr1?=?GetImageBuffer(&src_img);
img_ptr2?=?GetImageBuffer(&dest_img);

//?初始化波幅數組
memset(buf??0?(PIC_HEIGHT*PIC_WIDTH+PIC_WIDTH)?*?sizeof(short));
memset(buf2?0?(PIC_HEIGHT*PIC_WIDTH+PIC_WIDTH)?*?sizeof(short));

//?Let‘s?Go!
BeginBatchDraw(); //?雙緩沖,閃屏時需要
while(true)?
{
frameFun();
RenderFun();
FlushBatchDraw();
Sleep(1);
}
EndBatchDraw();
}

//?計算出下一個時刻所有點的波幅
void?nextframe()
{
for(int?i?=?PIC_WIDTH;?i? {
//?公式:X0‘=?(X1+X2+X3+X4)?/?2?-?X0
buf2[i]?=?((buf[i-PIC_WIDTH]?+?buf[i+PIC_WIDTH]?+?buf[i-1]?+?buf[i+1])?>>?1)?-?buf2[i];

//?波能衰減
buf2[i]?-=?buf2[i]?>>?5;
}

short?*ptmp?=?buf;
buf??=?buf2;
buf2?=?ptmp;
}

//?處理當前時刻波幅影響之后的位圖,保存在?dest_img?中
void?RenderRipple()
{
int?i?=?0;
for?(int?y?=?0;?y? {
for?(int?x?=?0;?x? {
short?data?=?1024?-?buf[i];

//?偏移
int?a?=?((x?-?PIC_WIDTH??/?2)?*?data?/?1024)?+?PIC_WIDTH??/?2;
int?b?=?((y?-?PIC_HEIGHT?/?2)?*?data?/?1024)?+?PIC_HEIGHT?/?2;

//?邊界處理
if?(a?>=?PIC_WIDTH) a?=?PIC_WIDTH?-?1;
if?(a? if?(b?>=?PIC_HEIGHT) b?=?PIC_HEIGHT?-?1;
if?(b?
//?處理偏移?
img_ptr2[i]?=?img_ptr1[a?+?(b?*?PIC_WIDTH)];
i++;
}
}
}

//?鼠標模擬投石頭
//?參數說明:
//?(x?y):?鼠標坐標
//?stonesize:?“石頭”的大小
//?stoneweight:?投“石頭”的力度
//?Ps:?如果產生錯誤,一般就是數組越界所致,請酌情調整“石頭”的大小和“石頭”的力度
void?disturb(int?x?int?y?int?stonesize?int?stoneweight)?
{
//?突破邊界不處理
if?((x?>=?PIC_WIDTH?-?stonesize)?||
(x? (y?>=?PIC_HEIGHT?-?stonesize)?||
(y? return;

for?(int?posx=x-stonesize;?posx {
for?(int?posy=y-stonesize;?posy {
if?((posx-x)*(posx-x)?+?(posy-y)*(posy-y)? {
buf[PIC_WIDTH*posy+posx

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????116053??2013-03-20?01:25??water.jpg
?????文件????????4180??2013-03-21?00:43??Wave.cpp
?????文件????????4258??2013-03-20?12:40??Wave.dsp
?????文件?????????514??2013-03-19?00:57??Wave.dsw
?????文件???????98304??2013-03-21?00:44??Wave.exe

評論

共有 條評論

相關資源