重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
没听说过这种按钮能变椭圆的。但是你可以用图片按钮实现这种效果,即用图片或者Flash作为按钮,加上点击事件就行了。
十余年的百色网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整百色建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“百色网站设计”,“百色网站推广”以来,每个客户项目都认真落实执行。
Dim shape As New System.Drawing.Drawing2D.GraphicsPath
shape.AddEllipse(0, 0, Me.Width, Me.Height)
Me.Region = New System.Drawing.Region(shape)
用极坐标方程啊。
根据椭圆的极坐标方程:x=P*cosA,y=P*sinA,如果在中心点旋转角度为B的话,那极坐标方程就是
x=P*cos(A+B),y=P*sin(A+B),将COS(A+B)和SIN(A+B)展开,解关于A的方程,得到
sinA=。。。cosA=....
因此可以在VB里面用object.pset(sinA,cosA)画椭圆了
x1,y1为椭圆中心点移动的坐标
控件自己添加进去就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坐标
Dim Cy As Integer = 150 '圆心的Y坐标
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(画笔的颜色,绘制椭圆所需要的矩形区域)
其中:绘制椭圆所需要的矩形区域,如果被定义为正方形,就演变成绘制圆,定义该区域由死个数值确定,第1个数值,确定该区域左上角的X坐标,第2个数值,确定该区域左上角的Y坐标,第3个数值,确定该区域的宽度,第4个数值,确定该区域的高度。
例如1:
DrawEllipse(Pens.Black, New Rectangle(150, 150, 50, 50))
就是以圆心坐标为(100,100),绘制半径为50 的圆。其实在VB.NET中,是告诉系统在以左上角坐标(150,150),边长为50的正方形里绘制内切圆。理解了是在正方形里绘制内切圆,就可以通过数学计算,知道如何绘制了。
同理例如2:
DrawEllipse(Pens.Black, New Rectangle(150, 150, 100, 50))
就是以圆心坐标为(100,100),绘制半径为50 的圆。其实在VB.NET中,是告诉系统在以左上角坐标(150,150),长轴为100,短轴为50的内切椭圆。