新聞中心
VB畫橢圓的程序怎么編寫
用極坐標(biāo)方程啊。
十多年的龍鳳網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整龍鳳建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“龍鳳網(wǎng)站設(shè)計(jì)”,“龍鳳網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
根據(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)移動(dòng)的坐標(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
VB程序 設(shè)計(jì)程序模擬行星運(yùn)動(dòng)。太陽和行星軌道用Circle語句完成,行星在軌道上運(yùn)動(dòng)的橢圓方程為:
Const PI = 3.14159
Dim alfa As Single
Dim x As Single, y As Single, rx As Single, ry As Single
Dim cenx As Single, ceny As Single
Private Sub Form_Load()
cenx = 2000 '繪圖中心
ceny = 1600
alfa = 0
rx = 1500 'x軸半徑
ry = 900 'y軸半徑
Do
alfa = alfa + 0.1
x = rx * Cos(alfa)
y = ry * Sin(alfa)
Me.PSet (x + cenx, y + ceny) '點(diǎn)繪
Loop Until alfa = 2 * PI
Me.Picture = Me.Image
Timer1.Interval = 100
End Sub
Private Sub Timer1_Timer()
alfa = alfa + 0.1
If alfa = 2 * PI Then alfa = 0
x = rx * Cos(alfa)
y = ry * Sin(alfa)
Me.Cls
Me.Circle (x + cenx, y + ceny), 120
Me.PSet (x + cenx, y + ceny)
End Sub
在vb點(diǎn)虐 中DrawEllipse和DrawCircle的區(qū)別?
你說的是GDI+里的方法嗎?
我記得沒有drawCircle這個(gè)方法的,只有畫DrawElipse橢圓和DrawArc這2個(gè)方法,分別表示畫橢圓(畫圓統(tǒng)一用DrawElipse方法)和畫?。ó嫏E圓弧統(tǒng)一用DrawArc方法)。
統(tǒng)一的方法如何實(shí)現(xiàn)橢圓、圓的呢?其實(shí)是用橢圓、圓的外切矩形來表示的。橢圓跟圓的唯一區(qū)別是它們外切矩形的長(zhǎng)寬比不同,圓是一個(gè)正方形,橢圓是矩形,而且橢圓需要考慮有可能畫轉(zhuǎn)了角度的情況的橢圓,長(zhǎng)軸與x軸是有特定角度的。
如何用VB.NET畫同心圓
窗體上添加一個(gè)按鈕,在該按鈕的單擊事件里編寫代碼如下:
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
‘用黑色畫筆繪制一組同心圓,半徑從5開始,增量為5。
說明:
DrawEllipse是VB.Net的Graphics類的繪制橢圓的方法;他有幾種格式,上面使用的是一種;
DrawEllipse(畫筆的顏色,繪制橢圓所需要的矩形區(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)切圓,就可以通過數(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)切橢圓。
分享題目:vb點(diǎn)虐 橢圓方程 橢圓編程代碼
新聞來源:http://www.dlmjj.cn/article/ddgjdih.html