沒聽說過這種按鈕能變橢圓的。但是你可以用圖片按鈕實現(xiàn)這種效果,即用圖片或者Flash作為按鈕,加上點(diǎn)擊事件就行了。
十余年的百色網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整百色建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“百色網(wǎng)站設(shè)計”,“百色網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
Dim?shape?As?New?System.Drawing.Drawing2D.GraphicsPath
shape.AddEllipse(0,?0,?Me.Width,?Me.Height)
Me.Region?=?New?System.Drawing.Region(shape)
用極坐標(biāo)方程啊。
根據(jù)橢圓的極坐標(biāo)方程:x=P*cosA,y=P*sinA,如果在中心點(diǎn)旋轉(zhuǎn)角度為B的話,那極坐標(biāo)方程就是
x=P*cos(A+B),y=P*sin(A+B),將COS(A+B)和SIN(A+B)展開,解關(guān)于A的方程,得到
sinA=。。。cosA=....
因此可以在VB里面用object.pset(sinA,cosA)畫橢圓了
x1,y1為橢圓中心點(diǎn)移動的坐標(biāo)
控件自己添加進(jìn)去就OK了。
代碼如下:
Private Sub Command1_Click()
Picture1.Cls
Picture1.Scale (-100, 100)-(100, -100)
Picture1.AutoRedraw = True
Dim x, y As Double
Dim Alfa, Ceta As Double
Dim x1, y1 As Double
Dim r, g, bb As Double
r = r + 10
g = g
bb = bb + r
x1 = Val(Text4.Text)
y1 = Val(Text5.Text)
a = Val(Text2.Text)
b = Val(Text3.Text)
Text1.Text = Val(Text1.Text) + 10
Ceta = Val(Text1.Text) / 180 * 3.1415926
For Alfa = -3.1415926 To 3.1415926 Step 0.003
x = a * Cos(Alfa)
y = b * Sin(Alfa)
m = ((x) * Cos(Ceta) + (y) * Sin(Ceta)) + x1
n = (-x) * Sin(Ceta) + (y) * Cos(Ceta) + y1
Picture1.PSet (m, n), RGB(r, 0, bb)
Next Alfa
Picture1.Line (0, 100)-(0, -100), vbRed
Picture1.Line (100, 0)-(-100, 0), vbRed
End Sub
窗體上添加一個按鈕,在該按鈕的單擊事件里編寫代碼如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'聲明窗體的Me.CreateGraphics對象
Dim MyGraphics As Graphics = Me.CreateGraphics
Dim Cx As Integer = 150 '圓心的X坐標(biāo)
Dim Cy As Integer = 150 '圓心的Y坐標(biāo)
Dim R As Integer '圓的半徑
'繪制半徑為R的圓
For R = 5 To 100 Step 5
MyGraphics.DrawEllipse(Pens.Black, New Rectangle(Cx - R, Cy - R, 2 * R, 2 * R))
Next
End Sub
‘用黑色畫筆繪制一組同心圓,半徑從5開始,增量為5。
說明:
DrawEllipse是VB.Net的Graphics類的繪制橢圓的方法;他有幾種格式,上面使用的是一種;
DrawEllipse(畫筆的顏色,繪制橢圓所需要的矩形區(qū)域)
其中:繪制橢圓所需要的矩形區(qū)域,如果被定義為正方形,就演變成繪制圓,定義該區(qū)域由死個數(shù)值確定,第1個數(shù)值,確定該區(qū)域左上角的X坐標(biāo),第2個數(shù)值,確定該區(qū)域左上角的Y坐標(biāo),第3個數(shù)值,確定該區(qū)域的寬度,第4個數(shù)值,確定該區(qū)域的高度。
例如1:
DrawEllipse(Pens.Black, New Rectangle(150, 150, 50, 50))
就是以圓心坐標(biāo)為(100,100),繪制半徑為50 的圓。其實在VB.NET中,是告訴系統(tǒng)在以左上角坐標(biāo)(150,150),邊長為50的正方形里繪制內(nèi)切圓。理解了是在正方形里繪制內(nèi)切圓,就可以通過數(shù)學(xué)計算,知道如何繪制了。
同理例如2:
DrawEllipse(Pens.Black, New Rectangle(150, 150, 100, 50))
就是以圓心坐標(biāo)為(100,100),繪制半徑為50 的圓。其實在VB.NET中,是告訴系統(tǒng)在以左上角坐標(biāo)(150,150),長軸為100,短軸為50的內(nèi)切橢圓。