效果如圖,代碼如下:
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有湖州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Public?Class?Form1
'Circle類(lèi)
Class?Circle
? Public?Center?As?Point
? Public?Radius?As?Single
? Public?Sub?New(c?As?Point,?r?As?Single)
? ? ? Center?=?c
? ? ? Radius?=?r
? End?Sub
? '繪制
? Public?Sub?Draw(g?As?Graphics,?pen?As?Pen)
? ? ? g.DrawEllipse(pen,?New?RectangleF(Center.X?-?Radius,?Center.Y?-?Radius,?Radius?*?2,?Radius?*?2))
? End?Sub
End?Class
Private?downPoint?As?Point? ? ? '記錄鼠標(biāo)按下位置
Private?circleList?As?New?List(Of?Circle)? ? ? ?'已存放圓的列表
Private?tmpCircle?As?Circle? ? ?'臨時(shí)圓(正在拖動(dòng))
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
? DoubleBuffered?=?True? ? ? ?'啟用雙緩沖繪圖,避免閃爍
End?Sub
Private?Sub?Form1_MouseDown(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseDown
? downPoint?=?e.Location? ? ? '記下位置
End?Sub
Private?Sub?Form1_MouseMove(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseMove
? If?e.Button??Windows.Forms.MouseButtons.Left?Then?Return?'左鍵沒(méi)按下則退出
? Dim?r?As?Single?=?Math.Sqrt((e.X?-?downPoint.X)?^?2?+?(e.Y?-?downPoint.Y)?^?2)? '算出半徑
? tmpCircle?=?New?Circle(downPoint,?r)? ? ? ? ? ? '更新臨時(shí)圓
? Refresh()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'先刷新掉之前繪制的臨時(shí)圓
? tmpCircle.Draw(Me.CreateGraphics,?Pens.Black)? ?'繪制臨時(shí)圓
End?Sub
Private?Sub?Form1_MouseUp(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseUp
? circleList.Add(tmpCircle)? ? ? ? ? ?'鼠標(biāo)彈起,把臨時(shí)圓加入圓列表
End?Sub
Private?Sub?Form1_Paint(sender?As?Object,?e?As?PaintEventArgs)?Handles?Me.Paint
? For?Each?c?As?Circle?In?circleList
? ? ? c.Draw(e.Graphics,?Pens.Black)? '繪制出每個(gè)圓
? Next
End?Sub
End?Class
VB的運(yùn)算順序是:先乘除、后加減,有括號(hào)的先算括號(hào)內(nèi),有負(fù)號(hào)的先算負(fù)號(hào)。
請(qǐng)你比較一下這個(gè)運(yùn)算中x和y的值:
Dim n As Single = 4
Dim x As Single
Dim y As Single
x = n + 1
x = x / n
x = x - 1
x = Math.Sqrt(x)
y = Math.Sqrt((n + 1) / n - 1)
這樣就會(huì)發(fā)現(xiàn),你的代碼中括號(hào)的位置錯(cuò)了。
正確的應(yīng)該是: Math.Sqrt((n + 1) / n - 1)
我是這么做的,你參考一下:
所有Panel的Visiable屬性都是False
'設(shè)置全局變量
Private lblMenu As Object = Nothing '鼠標(biāo)移動(dòng)的前一菜單項(xiàng)
Private MenuSelect As Object = Nothing '鼠標(biāo)點(diǎn)擊的前一菜單項(xiàng)
Private FrmShow As Object = Nothing '前一菜單項(xiàng)所指向內(nèi)容
Private Sub MixedControls_Click(sender As System.Object, e As System.EventArgs) Handles _
Label1.Click, Label2.Click, Label3.Click, Label4.Click, Label5.Click, Label6.Click, Label7.Click
If MenuSelect IsNot Nothing Then
MenuSelect.forecolor = Color.White '前面選擇的菜單項(xiàng)前景色變?yōu)榘咨?/p>
End If
If FrmShow IsNot Nothing Then
FrmShow.visible = False '前一菜單項(xiàng)內(nèi)容隱藏
End If
sender.forecolor = Color.Chartreuse '當(dāng)前選擇的菜單項(xiàng)前景色為亮綠色
MenuSelect = sender '保存當(dāng)前選擇菜單項(xiàng)
Select Case sender.name.ToString
Case "Label1"
FrmShow = Panel1 '保存當(dāng)前菜單項(xiàng)選擇
Me.Panel1.Dock = DockStyle.Fill '顯示運(yùn)行界面
Me.Panel1.Visible = True
Case "Label2"
FrmShow = Panel2 '保存當(dāng)前菜單項(xiàng)選擇
Me.Panel2.Dock = DockStyle.Fill '顯示設(shè)置界面
Me.Panel2.Visible = True
Case "Label3"
FrmShow = Panel3 '保存當(dāng)前菜單項(xiàng)選擇
Me.Panel3.Dock = DockStyle.Fill '顯示關(guān)于界面
Me.Panel3.Visible = True
End Select
End Sub
Private Sub MixedControls_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles _
Label1.MouseDown, Label2.MouseDown, Label3.MouseDown, Label4.MouseDown, Label5.MouseDown, Label6.MouseDown, Label7.MouseDown
sender.BorderStyle = BorderStyle.FixedSingle '鼠標(biāo)按下菜單效果
End Sub
Private Sub MixedControls_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles _
Label1.MouseUp, Label2.MouseUp, Label3.MouseUp, Label4.MouseUp, Label5.MouseUp, Label6.MouseUp, Label7.MouseUp
sender.BorderStyle = BorderStyle.None '鼠標(biāo)抬起取消菜單效果
End Sub
Private Sub MixedControls_MouseEnter(sender As Object, e As System.EventArgs) Handles _
Label1.MouseEnter, Label2.MouseEnter, Label3.MouseEnter, Label4.MouseEnter, Label5.MouseEnter, Label6.MouseEnter, Label7.MouseEnter
If lblMenu IsNot Nothing Then
Call MixedControls_MouseLeave(lblMenu, e) '前一菜單項(xiàng)恢復(fù)初始狀態(tài)
End If
sender.backcolor = Color.DeepSkyBlue '鼠標(biāo)進(jìn)入菜單范圍的效果:背景色變深藍(lán)
lblMenu = sender '保存當(dāng)前進(jìn)入菜單項(xiàng)
End Sub
Private Sub MixedControls_MouseLeave(sender As Object, e As System.EventArgs) Handles _
Label1.MouseLeave, Label2.MouseLeave, Label3.MouseLeave, Label4.MouseLeave, Label5.MouseLeave, Label6.MouseLeave, Label7.MouseLeave
sender.backcolor = Color.Transparent '鼠標(biāo)離開(kāi)菜單項(xiàng)恢復(fù)默認(rèn)效果,背景色透明
sender.BorderStyle = BorderStyle.None '菜單項(xiàng)邊框取消
lblMenu = Nothing '刪除保存的菜單項(xiàng)
End Sub
絕對(duì)值是“|”,可以直接顯示,同理對(duì)數(shù)可用log(x)代替,根號(hào)和其他不支持顯示。
如果要顯示數(shù)學(xué)式子,只能畫(huà)吧。
計(jì)算時(shí)可用“^”求冪或求根,“/”表示除法和分?jǐn)?shù)線,還有math類(lèi)。
額,我可以用vb6.0的語(yǔ)句回答您,給您參考,就是不知道您可以轉(zhuǎn)化成.net語(yǔ)句與否。
'添加text1,text2,text3用于記錄a,b,c的值
Private?Sub?Command1_Click()
On?Error?GoTo?check
Dim?a,?b,?c,?result1,?result2
a?=?Text1.Text
b?=?Text2.Text
c?=?Text3.Text
result1?=?(((-1)?*?b)?+?Sqr(b?^?2?-?4?*?a?*?c))?/?2?*?a
result2?=?(((-1)?*?b)?-?Sqr(b?^?2?-?4?*?a?*?c))?/?2?*?a
MsgBox?"x1=?"??result1??"??x2=?"??result2
Exit?Sub
check:
MsgBox?"error!please?check?your?number!"
End?Sub
注意只能對(duì)整型執(zhí)行按位運(yùn)算。浮點(diǎn)值必須轉(zhuǎn)換為整型后,才能執(zhí)行按位運(yùn)算。按位運(yùn)算采用二進(jìn)制(以 2 為基)形式計(jì)算兩個(gè)整數(shù)值。它們比較對(duì)應(yīng)位置上的位,然后基于比較的結(jié)果賦值。下面的示例演示了 And 運(yùn)算符。復(fù)制Dim x As Integerx = 3 And 5 前面的示例將 x 的值設(shè)置為 1。發(fā)生這種情況的原因如下:這些值以二進(jìn)制形式處理:二進(jìn)制格式的 3 為 011二進(jìn)制格式的 5 為 101And 運(yùn)算符比較這些二進(jìn)制表示方式,一次比較一個(gè)二進(jìn)制位置(位)。如果給定位置的兩個(gè)位都為 1,則將 1 放在結(jié)果中的該位置。如果任何一個(gè)位是 0,則將 0 放在結(jié)果中的該位置。在前面的示例中,按如下所示計(jì)算結(jié)果:011(二進(jìn)制格式的 3)101(二進(jìn)制格式的 5)001(二進(jìn)制格式的計(jì)算結(jié)果)計(jì)算結(jié)果以十進(jìn)制形式處理。值 001 是 1 的二進(jìn)制表示形式,因此 x = 1。除了在任何一個(gè)比較位是 1 或兩個(gè)比較位都是 1 的情況下將 1 賦予結(jié)果位以外,按位 Or 運(yùn)算與此類(lèi)似。Xor 在比較的位正好只有一個(gè)是 1(而不是兩者都是 1)時(shí)將 1 賦給結(jié)果位。Not 采用單個(gè)操作數(shù)并反轉(zhuǎn)所有位(包括符號(hào)位),然后將該值賦予結(jié)果。這意味著,對(duì)于有符號(hào)正數(shù),Not 始終返回負(fù)值,而對(duì)于負(fù)數(shù),Not 始終返回正值或零。AndAlso 和OrElse 運(yùn)算符不支持按位運(yùn)算。 追問(wèn): 好復(fù)雜啊...還是不會(huì),還有整數(shù)怎么轉(zhuǎn)換為二進(jìn)制數(shù)? 回答: 為什么一定要用位運(yùn)算呢,你那個(gè)乘法只能通過(guò)左移操作符“
文章名稱(chēng):vb.net求根號(hào) vb求根代碼
轉(zhuǎn)載來(lái)于:http://muchs.cn/article4/hgsiie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、Google、全網(wǎng)營(yíng)銷(xiāo)推廣、微信小程序、動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)
聲明:本網(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)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)