真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net蝴蝶飛舞動(dòng)畫 蝴蝶飛舞vb代碼

用VB設(shè)計(jì)一個(gè)蝴蝶飛動(dòng)的程序

因?yàn)檫@里只能上傳一張圖片,所以寫了一個(gè)單張圖片的。裝載系列圖片的我也寫了,只是窗體初始化會(huì)很麻煩。以下代碼是實(shí)現(xiàn)單張圖片的隨意飛舞程序,能做到:

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)肇源免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

1、碰到窗體邊緣時(shí),圖片會(huì)自動(dòng)改變飛舞的方向(題意中要求的“返回”,只能是在一條線上來回移動(dòng),本程序?qū)崿F(xiàn)蝴蝶出發(fā)位置隨意,能在窗體內(nèi)四處飛舞),而且頭部也會(huì)跟著改變方向

2、窗體改變大小時(shí),蝴蝶不會(huì)消失不見,會(huì)立即在新的窗體內(nèi)繼續(xù)飛舞

'建一個(gè)Picture1控件,在它的屬性對(duì)話框內(nèi)設(shè)置Appearance=0?AutoRedraw=True?AutoSize=True?BorderStyle=0,然后在它的Picture中加載蝴蝶圖片

'再建一個(gè)Picture2控件,在它的屬性對(duì)話框內(nèi)設(shè)置Appearance=0?AutoRedraw=False?AutoSize=False?BorderStyle=0,其他默認(rèn)屬性都不得改變

'Form的BackColor設(shè)為與蝴蝶圖片的背景色一致,本程序中,即H80000009

'再加一個(gè)Timer1控件

Private?Const?Pi?=?3.1415926535

Private?Declare?Function?SetPixel?Lib?"gdi32"?(ByVal?hdc?As?Long,?ByVal?x?As?Long,?ByVal?y?As?Long,?ByVal?crColor?As?Long)?As?Long

Private?Declare?Function?GetPixel?Lib?"gdi32"?(ByVal?hdc?As?Long,?ByVal?x?As?Long,?ByVal?y?As?Long)?As?Long

Dim?x0!,?y0!,?x1!,?x2!,?y1!,?y2!,?foot!,?zt%?'x0和y0是圖片框長(zhǎng)高,(x1,y1)-(x2,y2)是窗體坐標(biāo)系,foot是蝴蝶移動(dòng)步長(zhǎng),zt是蝴蝶飛舞的線路標(biāo)記

Dim?k!?'k或1/k是飛行軌跡的斜率

Dim?flag?As?Boolean?'flag判斷是順時(shí)針還是逆時(shí)針飛舞

Private?Sub?bmp_rotate(pic1?As?PictureBox,?pic2?As?PictureBox,?ByVal?theta?As?Single)?'自定義角度旋轉(zhuǎn)圖片

Dim?c1x?As?Integer,?c1y?As?Integer

Dim?c2x?As?Integer,?c2y?As?Integer

Dim?a?As?Single

Dim?p1x?As?Integer,?p1y?As?Integer

Dim?p2x?As?Integer,?p2y?As?Integer

Dim?n?As?Integer,?r?As?Integer

c1x?=?pic1.ScaleWidth?/?2

c1y?=?pic1.ScaleHeight?/?2

c2x?=?pic2.ScaleWidth?/?2

c2y?=?pic2.ScaleHeight?/?2

If?c2x??c2y?Then?n?=?c2y?Else?n?=?c2x

n?=?n?-?1

pic1hDC?=?pic1.hdc

pic2hDC?=?pic2.hdc

For?p2x?=?0?To?n

For?p2y?=?0?To?n

If?p2x?=?0?Then?a?=?Pi?/?2?Else?a?=?Atn(p2y?/?p2x)

r?=?Sqr(1?*?p2x?*?p2x?+?1?*?p2y?*?p2y)

p1x?=?r?*?Cos(a?+?theta)

p1y?=?r?*?Sin(a?+?theta)

c0?=?GetPixel(pic1hDC,?c1x?+?p1x,?c1y?+?p1y)

c1?=?GetPixel(pic1hDC,?c1x?-?p1x,?c1y?-?p1y)

c2?=?GetPixel(pic1hDC,?c1x?+?p1y,?c1y?-?p1x)

c3?=?GetPixel(pic1hDC,?c1x?-?p1y,?c1y?+?p1x)

If?c0??-1?Then?xret?=?SetPixel(pic2hDC,?c2x?+?p2x,?c2y?+?p2y,?c0)

If?c1??-1?Then?xret?=?SetPixel(pic2hDC,?c2x?-?p2x,?c2y?-?p2y,?c1)

If?c2??-1?Then?xret?=?SetPixel(pic2hDC,?c2x?+?p2y,?c2y?-?p2x,?c2)

If?c3??-1?Then?xret?=?SetPixel(pic2hDC,?c2x?-?p2y,?c2y?+?p2x,?c3)

Next

t%?=?DoEvents()

Next

End?Sub

Private?Sub?Place(ByVal?picnum?As?Integer,?ByVal?x?As?Single,?ByVal?y?As?Single)?'控制兩個(gè)圖片框的位置

If?picnum?=?1?Then

Picture1.Left?=?x

Picture1.Top?=?y

Else

Picture2.Left?=?x

Picture2.Top?=?y

End?If

End?Sub

Private?Sub?Direct(ByVal?angle?As?Integer)?'按指定角度旋轉(zhuǎn)圖片,angle是角度

angle?=?angle?Mod?360

hudu?=?(Pi?*?angle?*?1#)?/?(180?*?1#)?'弧度

bmp_rotate?Picture1,?Picture2,?hudu

End?Sub

Private?Sub?Form_Activate()

x1?=?0!

x2?=?10000!

y1?=?0!

y2?=?10000!

Me.Scale?(x1,?y1)-(x2,?y2)

Randomize

Picture1.ScaleMode?=?3

Picture2.ScaleMode?=?3

x0?=?Picture1.Width

Picture2.Width?=?x0

y0?=?Picture1.Height

Picture2.Height?=?y0

Picture1.Visible?=?True

Picture2.Visible?=?False

x?=?Int(1000?+?(x2?-?x1?-?x0?-?1000)?*?Rnd)?'蝴蝶出發(fā)處的橫坐標(biāo)

y?=?Int(1000?+?(y2?-?y1?-?y0?-?1000)?*?Rnd)?'蝴蝶出發(fā)處的縱坐標(biāo)

k?=?y?/?x?'k為撞向水平邊框或離開豎直邊框的斜率,1/k則為撞向豎直邊框或離開水平邊框的斜率

Place?1,?-x2,?y2?-?y0?'將圖片框的復(fù)制源移出窗體的可見范圍,但Visible屬性又必須是True,否則復(fù)制圖片會(huì)失敗

Place?2,?x,?y?'初始化蝴蝶的出發(fā)位置

Timer1.Enabled?=?True

Timer1.Interval?=?100?'定義移動(dòng)周期

zt?=?0

End?Sub

Private?Sub?Form_Click()

Timer1.Enabled?=?Not?Timer1.Enabled

End?Sub

Private?Sub?Form_Resize()?'窗體改變大小時(shí),坐標(biāo)系需要重新定義

x1?=?0!

x2?=?10000!

y1?=?0!

y2?=?10000!

Me.Scale?(x1,?y1)-(x2,?y2)

Cls

x0?=?Picture1.Width

Picture2.Width?=?x0

y0?=?Picture1.Height

Picture2.Height?=?y0

'如果蝴蝶在窗體外,則立即召回

If?Picture2.Left??x1?Then?Place?2,?x1,?Picture2.Top

If?Picture2.Top??y1?Then?Place?2,?Picture2.Left,?y1

If?Picture2.Left??x2?-?x1?-?x0?Then?Place?2,?x2?-?x1?-?x0,?Picture2.Top

If?Picture2.Top??y2?-?y1?-?y0?Then?Place?2,?Picture2.Left,?y2?-?y1?-?y0

End?Sub

Private?Sub?Form_Unload(Cancel?As?Integer)

End

End?Sub

'zt=0,1,2,3時(shí),分別表示順時(shí)針向右上(簡(jiǎn)稱順右上)或逆左下,順右下或逆左上,順左下或逆右上,順左上或逆右下

Private?Sub?Timer1_Timer()

foot?=?100

x?=?Picture2.Left:?y?=?Picture2.Top

Select?Case?True

Case?(flag?=?True?And?zt?=?0)?Or?(flag?=?False?And?zt?=?2)

Place?2,?x?+?foot,?y?-?k?*?foot

'Line?(x,?y)-(x?+?foot,?y?-?k?*?foot)

Direct?360

If?Picture2.Left??x2?-?x1?-?x0?-?foot?Then?zt?=?1:?flag?=?False?'撞到垂直邊框,將逆左上

If?Picture2.Top??foot?Then?zt?=?1:?flag?=?True?'撞到水平邊框,將順右下

Case?(flag?=?True?And?zt?=?1)?Or?(flag?=?False?And?zt?=?3)

Place?2,?x?+?foot,?y?+?foot?/?k

'Line?(x,?y)-(x?+?foot,?y?+?foot?/?k)

Direct?270

If?Picture2.Left??x2?-?x1?-?x0?-?foot?Then?zt?=?2:?flag?=?True?'撞到垂直邊框,將順左下

If?Picture2.Top??y2?-?y1?-?y0?-?foot?Then?zt?=?2:?flag?=?False?'撞到水平邊框,將逆右上

Case?(flag?=?True?And?zt?=?2)?Or?(flag?=?False?And?zt?=?0)

Place?2,?x?-?foot,?y?+?k?*?foot

'Line?(x,?y)-(x?-?foot,?y?+?k?*?foot)

Direct?180

If?Picture2.Left??foot?Then?zt?=?3:?flag?=?False?'撞到垂直邊框,將逆右下

If?Picture2.Top??y2?-?y1?-?y0?-?foot?Then?zt?=?3:?flag?=?True?'撞到水平邊框,將順左上

Case?(flag?=?True?And?zt?=?3)?Or?(flag?=?False?And?zt?=?1)

Place?2,?x?-?foot,?y?-?foot?/?k

'Line?(x,?y)-(x?-?foot,?y?-?foot?/?k)

Direct?90

If?Picture2.Left??foot?Then?zt?=?0:?flag?=?True?'撞到垂直邊框,將順右上

If?Picture2.Top??foot?Then?zt?=?0:?flag?=?False?'撞到水平邊框,將逆左下

End?Select

Picture2.Visible?=?True

End?Sub

動(dòng)畫蝴蝶如何制作

蝴蝶飛舞的效果是許多Flash電影中經(jīng)常應(yīng)用到的一個(gè)效果,而在本例中僅僅用到了一只沿路徑運(yùn)動(dòng)的蝴蝶就達(dá)到了一個(gè)比較好的效果。這個(gè)實(shí)例是在場(chǎng)景中通過鼠標(biāo)的移動(dòng)來實(shí)現(xiàn)蝴蝶飛舞,其中蝴蝶飛舞的路徑、大小和數(shù)量并不是確定的,而是我們通過ActionScript來進(jìn)行控制的。

第1步,啟動(dòng)Flash

8.0,新建一個(gè)文件。右擊舞臺(tái)的空白處,選擇快捷菜單中的“文檔屬性”,設(shè)置尺寸大小為:500PX、250PX,背景顏色為“黑色”,確定“確定”按鈕,

第2步,按“Ctrl+F8”鍵,新建一個(gè)新元件,名稱為“蝴蝶”,“行為”選擇“圖形”,如圖2所示

單擊“確定”按鈕,進(jìn)入蝴蝶編輯區(qū)。我們可以繪制一個(gè)蝴蝶,如果認(rèn)為在繪制上認(rèn)為比較煩瑣,就找一個(gè)現(xiàn)成的處理后的蝴蝶。如圖3所示。

第3步,按“Ctrl+F8”鍵再創(chuàng)建一個(gè)新元件,名稱為“butterfly”,行為選擇“電影剪輯”,如圖4所示,

單擊“確定”按鈕,進(jìn)入其編輯區(qū)。單擊“窗口”→“庫”,彈出庫對(duì)話框,將我們制作的“蝴蝶”元件拖到“butterfly”編輯區(qū),單擊第7幀、13幀、19幀處按F6鍵分別插入三個(gè)關(guān)鍵幀,選中工具箱中的“任意變形工具”將第7幀、13幀、19幀的蝴蝶依次變榨,如圖5所示。

再別分右擊第7幀、13幀、19幀選擇快捷菜單中的“創(chuàng)建補(bǔ)間動(dòng)畫”,最后的時(shí)間軸如圖6所示。

第4步,按“Ctrl+F8”鍵再創(chuàng)建一個(gè)新元件”,名稱為“fly”,行為選擇“電影剪輯”,如圖7所示

單擊“確定”按鈕,進(jìn)入其編輯區(qū)。我們從庫中剛才制的“butterfly”元件拖到舞臺(tái)上,在此層的第35幀處按F6鍵插入一個(gè)關(guān)鍵幀。單擊時(shí)間軸下面的“運(yùn)動(dòng)引導(dǎo)層”按鈕,新建一個(gè)圖層。單擊此層的第1幀,選擇工具箱中的“鉛筆”工具,畫一條曲線,顏色任意,也就是蝴蝶運(yùn)動(dòng)的路徑,如圖8所示。

第5步,單擊“圖層1”的第1幀,選中“butterfly”元件,將它的注冊(cè)點(diǎn)移與曲線的一端點(diǎn)重合,然后單擊窗口下面的“屬性”對(duì)話框,將“顏色”選擇“Alpha”,將其值設(shè)為20%,如圖9所示。

再單擊第35幀將“butterfly”注冊(cè)點(diǎn)與曲線的另一端重合,按同樣的方法,彈出“屬性”對(duì)話框,將“顏色”選擇“Alpha”,將其值設(shè)為30%。然后右擊第1幀,彈出快捷菜單,選擇“創(chuàng)建補(bǔ)間動(dòng)畫”。

第6步,在圖層2的第8幀、15幀、25幀分別單擊右鍵,彈出快捷菜單,選擇“轉(zhuǎn)換為關(guān)鍵幀”,再分別選中這幾幀上的“butterfly”元件,按后單擊工具箱中的“任意變形工具”將其稍微旋轉(zhuǎn)一點(diǎn)角度和改變一下大小,如圖10所示。單擊“場(chǎng)景1”返回主場(chǎng)景。

第7步,將剛才做的“fly”元件從庫中拖到舞臺(tái)上,用鼠標(biāo)選中它,單擊窗口下方的“屬性”對(duì)話框,將它的實(shí)例名稱為“fly”,如圖11所示。在第3幀處,按F5鍵插入一幀。單擊第1幀,單擊窗口下方的“動(dòng)作-幀”對(duì)話框,加入以下語句:

startDrag("fly",true);

第8步,單擊時(shí)間軸下方的“插入圖層”按鈕,新建一圖層。在這個(gè)層上的第1幀、第2幀、第3幀分別按F6鍵插入三個(gè)關(guān)鍵幀,在每個(gè)關(guān)鍵幀上分別加入以下動(dòng)作語句:

如何利用Flash制作蝴蝶飛舞的動(dòng)畫

我們經(jīng)常會(huì)使用Flash制作各種動(dòng)物飛舞的動(dòng)畫,那么如何制作蝴蝶飛舞動(dòng)畫呢?下面我給大家分享一下。

工具/材料

Flash

01

首先右鍵點(diǎn)擊Flash頂部的文件菜單,選擇導(dǎo)入下面的導(dǎo)入到舞臺(tái)選項(xiàng),如下圖所示

02

接下來在彈出的界面中選擇要導(dǎo)入的背景圖片,如下圖所示

03

等到背景圖片導(dǎo)入進(jìn)來以后我們通過對(duì)齊工具將背景圖充滿整個(gè)舞臺(tái),如下圖所示

04

然后我們將準(zhǔn)備好的蝴蝶圖片拖到舞臺(tái)中,注意蝴蝶圖片需要是背景透明的,如下圖所示

05

接下來選中蝴蝶的左翅膀,將其轉(zhuǎn)換為影片剪輯元件,如下圖所示

06

然后在第10幀的地方插入關(guān)鍵幀,如下圖所示

07

接著在第10幀的地方選擇變形工具,將蝴蝶左翅膀的形狀改變,如下圖所示

08

接下來將第一幀的效果復(fù)制到第20幀處,如下圖所示

09

然后我們?cè)诘谝粠降?5幀,第15幀到第20幀分別創(chuàng)建傳統(tǒng)補(bǔ)間,如下圖所示

10

接下來新建一個(gè)引導(dǎo)層,如下圖所示,并利用畫筆工具畫一條引導(dǎo)線,如下圖所示

11

然后在引導(dǎo)層的第一幀拖到引導(dǎo)線的開始處,如下圖所示

12

接著在引導(dǎo)層的100幀處插入關(guān)鍵幀,并將蝴蝶拖到引導(dǎo)線的末尾,如下圖所示

13

接下來調(diào)整蝴蝶圖層的傳統(tǒng)補(bǔ)間屬性,勾選調(diào)整到路徑復(fù)選框,如下圖所示

14

最后運(yùn)行Flash,我們就可以看到蝴蝶隨著引導(dǎo)線的方向進(jìn)行飛舞了,如下圖所示


當(dāng)前名稱:vb.net蝴蝶飛舞動(dòng)畫 蝴蝶飛舞vb代碼
文章路徑:http://weahome.cn/article/dopjoeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部