Dim
創(chuàng)新互聯(lián)公司專(zhuān)注于崇信企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。崇信網(wǎng)站建設(shè)公司,為崇信等地區(qū)提供建站服務(wù)。全流程按需開(kāi)發(fā)網(wǎng)站,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
s
As
Boolean,
ci
As
Integer,
xianxing
As
Integer,
xiankuan
As
Integer
Dim
x0
As
Single,
y0
As
Single
Private
Sub
Command1_Click()
s
=
True
Command1.Enabled
=
False
End
Sub
Private
Sub
Form_Load()
Dim
b
b
=
Array("透明",
"實(shí)線",
"虛線",
"點(diǎn)線",
"點(diǎn)劃線",
"雙點(diǎn)劃線")
Frame1.Move
100,
100,
1300,
3500
Frame1.Caption
=
"線型"
Frame2.Move
Width
-
1500,
100,
1300,
3500
Frame2.Caption
=
"線寬"
For
i
=
To
5
Option1(i).Move
100,
300
+
i
*
500,
1100,
300
Option1(i).Caption
=
b(i)
Option2(i).Move
100,
500
+
i
*
500,
800,
300
Option2(i).Caption
=
i
+
1
"點(diǎn)寬"
Next
i
Shape1(0).Visible
=
False
Shape1(1).Visible
=
False
s
=
ci
=
-1
Command1.Caption
=
"開(kāi)始畫(huà)圓"
Command1.ToolTipText
=
"點(diǎn)擊按鈕后在窗體內(nèi)按下鼠標(biāo)左鍵處為圓心,拖到半徑處松開(kāi)鼠標(biāo)左鍵即可"
End
Sub
Private
Sub
Form_MouseDown(Button
As
Integer,
Shift
As
Integer,
X
As
Single,
Y
As
Single)
If
s
And
Button
=
1
Then
x0
=
X
y0
=
Y
ci
=
ci
+
1
If
ci
1
Then
Load
Shape1(ci)
Shape1(ci).Visible
=
True
Shape1(ci).BorderStyle
=
xianxing
Shape1(ci).Move
x0,
y0,
0,
Shape1(ci).Shape
=
3
Shape1(ci).BorderWidth
=
xiankuan
End
If
End
Sub
Private
Sub
Form_MouseMove(Button
As
Integer,
Shift
As
Integer,
X
As
Single,
Y
As
Single)
If
s
And
Button
=
1
Then
banjing
=
Sqr((x0
-
X)
*
(x0
-
X)
+
(y0
-
Y)
*
(y0
-
Y))
Shape1(ci).Move
x0
-
banjing,
y0
-
banjing,
2
*
banjing,
2
*
banjing
End
If
End
Sub
Private
Sub
Form_MouseUp(Button
As
Integer,
Shift
As
Integer,
X
As
Single,
Y
As
Single)
Command1.Enabled
=
True
s
=
False
End
Sub
Private
Sub
Option1_Click(Index
As
Integer)
For
i
=
To
5
If
Option1(i)
Then
xianxing
=
i
Next
i
If
i
=
1
Then
Frame2.Enabled
=
True
Else
Frame2.Enabled
=
False
xiankuan
=
1
End
If
End
Sub
Private
Sub
Option2_Click(Index
As
Integer)
For
i
=
To
5
If
Option2(i)
Then
xiankuan
=
1
+
i
Next
i
End
Sub
界面稍微復(fù)雜了點(diǎn):
一個(gè)按鈕,兩個(gè)框架,第一框架上option1共六個(gè),第二個(gè)框架上option2也是六個(gè)。
.Net中,畫(huà)圓用DrawEllipse方法,下面代碼在PictureBox1點(diǎn)擊鼠標(biāo)左鍵在鼠標(biāo)坐標(biāo)上生成一個(gè)高、寬為4像素,線寬為1像素的圓圈。
Private?Sub?PictureBox1_MouseClick(ByVal?sender?As?Object,?ByVal?e?As?System.Windows.Forms.MouseEventArgs)?Handles?PictureBox1.MouseClick
Dim?g?As?Graphics?=?PictureBox1.CreateGraphics
Dim?mypen?As?New?Pen(Color.Red,?1)
g.DrawEllipse(mypen,?e.X,?e.Y,?4,?4)
g.Dispose()
mypen.Dispose()
End?Sub
創(chuàng)建一個(gè)工程,界面上放一個(gè)PictureBox控件,控件名字叫Picture1,然后把下面的代碼復(fù)制到工程中,運(yùn)行查看效果。
Option?Explicit
Private?Type?POINTAPI
x?As?Long
y?As?Long
End?Type
Private?Declare?Function?Ellipse?Lib?"gdi32"?(ByVal?hdc?As?Long,?ByVal?X1?As?Long,?ByVal?Y1?As?Long,?ByVal?X2?As?Long,?ByVal?Y2?As?Long)?As?Long
Private?DrawEllipse?As?Boolean
Private?dwPoint(1)?As?POINTAPI
Private?Sub?Form_Load()
Picture1.ScaleMode?=?vbPixels
Picture1.AutoRedraw?=?True
End?Sub
Private?Sub?Picture1_MouseDown(Button?As?Integer,?Shift?As?Integer,?x?As?Single,?y?As?Single)
If?Button?=?vbLeftButton?Then
DrawEllipse?=?True
dwPoint(0).x?=?CLng(x)
dwPoint(0).y?=?CLng(y)
End?If
End?Sub
Private?Sub?Picture1_MouseMove(Button?As?Integer,?Shift?As?Integer,?x?As?Single,?y?As?Single)
If?DrawEllipse?=?True?Then
dwPoint(1).x?=?CLng(x)
dwPoint(1).y?=?CLng(y)
Picture1.Cls
Ellipse?Picture1.hdc,?dwPoint(0).x,?dwPoint(0).y,?dwPoint(1).x,?dwPoint(1).y
Picture1.Refresh
End?If
End?Sub
Private?Sub?Picture1_MouseUp(Button?As?Integer,?Shift?As?Integer,?x?As?Single,?y?As?Single)
If?Button?=?vbLeftButton?Then
DrawEllipse?=?False
End?If
End?Sub
用Circle 畫(huà)圓 圓弧 橢圓 都 具體參照面詳細(xì)說(shuō)明 Circle(一000,一000),500,吧,-陸,-三 一000,一000,圓坐標(biāo) 500,半徑 面別代表起始角,終止角,短軸比率 吧,詳細(xì)點(diǎn),Circle都說(shuō)遍 象畫(huà)圓、橢圓或弧 語(yǔ) object.Circle [Step] (x, y), radius, [color, start, end, aspect] Circle 語(yǔ)象限定符部: 部 描述 object 選 象表達(dá)式其值應(yīng)用于列表象object 省略具焦點(diǎn)窗體作object Step 選關(guān)鍵字 指定圓、橢圓或弧相于前 object CurrentX CurrentY 屬性提供坐標(biāo) (x, y) 必需 Single (單精度浮點(diǎn)數(shù))圓、橢圓或弧坐標(biāo)object ScaleMode 屬性決定使用度量單位 radius 必需Single (單精度浮點(diǎn)數(shù))圓、橢圓或弧半徑 object ScaleMode 屬性決定使用度量單位 color 選Long (整型數(shù))圓輪廓 RGB 顏色省略則使用 ForeColor 屬性值用 RGB 函數(shù)或 QBColor 函數(shù)指定顏色 start, end 選 Single (單精度浮點(diǎn)數(shù))弧、或部圓或橢圓畫(huà)完start end 指定(弧度單位)弧起點(diǎn)終點(diǎn)位置其范圍 -二 pi 二 pi 起點(diǎn)缺省值0; 終點(diǎn)缺省值二 * pi aspect 選 Single (單精度浮點(diǎn)數(shù))圓縱橫尺寸比缺省值 一.0何屏幕都產(chǎn)標(biāo)準(zhǔn)圓(非橢圓) 說(shuō)明 想要填充圓使用圓或橢圓所屬象 FillColor FillStyle 屬性封閉圖形才能填充封閉圖形包括圓、橢圓、或扇形 畫(huà)部圓或橢圓 start 負(fù)Circle 畫(huà)半徑 start并角度處理; end 負(fù)Circle 畫(huà)半徑 end并角度處理Circle 總逆針()向繪圖 畫(huà)圓、橢圓或弧線段粗細(xì)取決于 DrawWidth 屬性值背景畫(huà)圓取決于 DrawMode DrawStyle 屬性值 畫(huà)角度 0 扇形要畫(huà)條半徑(向右畫(huà)水平線段)給 start 規(guī)定負(fù)值要給 0 .省略語(yǔ)間某參數(shù)能省略隔參數(shù)逗號(hào)您指定參數(shù)面逗號(hào)省略 Circle 執(zhí)行CurrentX CurrentY 屬性參數(shù)設(shè)置點(diǎn) 能用 With匛nd With 語(yǔ)句塊 -------------------------------------------------------------------------------- Circle 示例 示例用Circle 窗體央畫(huà)許同圓要運(yùn)行示例代碼放入窗體 General 部按 F5 并單擊窗體 Sub Form_Click () Dim CX, CY, Radius, Limit ' Declare variable. ScaleMode = 三 ' 像素單位 CX = ScaleWidth / 二 ' X 位置 CY = ScaleHeight / 二 ' Y 位置 If CX CY Then Limit = CY Else Limit = CX For Radius = 0 To Limit ' 半徑 Circle (CX, CY), Radius,RGB(Rnd * 二55, Rnd * 二55, Rnd * 二55) Next Radius End Sub -------------------------------------------------------------------------------
窗體上添加一個(gè)按鈕,在該按鈕的單擊事件里編寫(xiě)代碼如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'聲明窗體的Me.CreateGraphics對(duì)象
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
‘用黑色畫(huà)筆繪制一組同心圓,半徑從5開(kāi)始,增量為5。
說(shuō)明:
DrawEllipse是VB.Net的Graphics類(lèi)的繪制橢圓的方法;他有幾種格式,上面使用的是一種;
DrawEllipse(畫(huà)筆的顏色,繪制橢圓所需要的矩形區(qū)域)
其中:繪制橢圓所需要的矩形區(qū)域,如果被定義為正方形,就演變成繪制圓,定義該區(qū)域由死個(gè)數(shù)值確定,第1個(gè)數(shù)值,確定該區(qū)域左上角的X坐標(biāo),第2個(gè)數(shù)值,確定該區(qū)域左上角的Y坐標(biāo),第3個(gè)數(shù)值,確定該區(qū)域的寬度,第4個(gè)數(shù)值,確定該區(qū)域的高度。
例如1:
DrawEllipse(Pens.Black, New Rectangle(150, 150, 50, 50))
就是以圓心坐標(biāo)為(100,100),繪制半徑為50 的圓。其實(shí)在VB.NET中,是告訴系統(tǒng)在以左上角坐標(biāo)(150,150),邊長(zhǎng)為50的正方形里繪制內(nèi)切圓。理解了是在正方形里繪制內(nèi)切圓,就可以通過(guò)數(shù)學(xué)計(jì)算,知道如何繪制了。
同理例如2:
DrawEllipse(Pens.Black, New Rectangle(150, 150, 100, 50))
就是以圓心坐標(biāo)為(100,100),繪制半徑為50 的圓。其實(shí)在VB.NET中,是告訴系統(tǒng)在以左上角坐標(biāo)(150,150),長(zhǎng)軸為100,短軸為50的內(nèi)切橢圓。
網(wǎng)站欄目:vb.net鼠標(biāo)畫(huà)圓,vb中怎么畫(huà)圓
文章起源:http://jinyejixie.com/article26/dschhcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、定制網(wǎng)站、網(wǎng)站制作、小程序開(kāi)發(fā)、微信公眾號(hào)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)