1. Trang chủ
  2. » Thể loại khác

LẬP TRÌNH VISUAL BASIC PictureBox,VẼ ĐỒ THỊ

18 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Th ng dùng hàm RGB đ ch đ nh màu... Nh p đúp vào form và nh p code: Private Sub Ve Dim R As Integer, G As Integer, B As Integer Dim kieuto As Integer Dim w As Integer, h As Integer

Trang 1

1

PictureBox V Đ Th

1 Hãy C C N TH N T T C N I DUNG trong bài th c hành tr c khi làm bài

2 Sinh viên T GÕ CODE, KHÔNG COPY t bài có s n, đ n m đ c vi c l p trình

1 Chu n đ u ra

Sau bài này, ng i h c có th :

 Chuy n đ i đ c t a đ gi a h t a đ toán (Oxy) và h t a đ c a PictureBox ho c Form đ

v đ th hàm s

 S d ng đ c các ph ng th c v : PSet, Line, Circle

 V đ c các bi u đ tròn, c t và các đ th hàm s đ c yêu c u

2 Chu n b

c l i v control: PictureBox

Tài li u tham kh o g i ý: Ch ng 9, Giáo trình Visual Basic 6.0, Nguy n ng Quang, i h c

S Ph m K Thu t TP H Chí Minh

3 Ph ng ti n

 Máy tính có cài đ t Visual Studio 6.0

4 Ki n th c b tr

H màu RGB:

 H màu: là m t s mô t các màu s c trong máy tính Ví d trong th c t , ta mô t màu

b ng t ng , nh : , Cam, Vàng, Tr ng, en…, còn trong máy tính, có r t nhi u màu

c n ph i th hi n, do đó ng i ta th ng đánh s đ ch các màu, ví d : RGB(255, 0, 0):

màu đ , RGB(0, 255, 0): màu xanh lá, RGB(255, 255, 255): màu tr ng

 H màu RGB: là h màu đ c dùng ph bi n trong máy tính H màu này dùng 3 thông

s : R (Red – ), G (Green – Xanh lá), B (Blue – Xanh d ng) đ ch màu s c M i

thông s có giá tr t 0-255 Các thông s này k t h p v i nhau t o thành các màu s c,

gi ng nh khi ta tr n các màu l i đ c m t màu t ng h p

Ví d : Red = 255, Green = 0, Blue = 0: màu đ , th ng đ c ghi là: RGB(255, 0, 0);

ho c Red = 0, Green = 0, Blue = 255: màu xanh d ng (RGB(0, 0, 255)); hay Red = 255,

Green = 255, Blue = 0: màu vàng (RGB(255, 255, 0))

Trang 2

2

H t a đ trong PictureBox:

Trong PictureBox, g c t a đ là góc trên, bên trái c a PictureBox v i các tr c t a đ có chi u

nh hình bên d i Ta g i tên h t a đ này là Ost (đ phân bi t v i h t a đ Oxy trong toán

h c (có tr c Oy h ng lên)):

Nh v y, trong PictureBox:

 T a đ theo chi u ngang (Os) có giá tr t 0  ScaleWidth

 T a đ theo chi u d c (Ot) có giá tr t 0  ScaleHeight

(ScaleWidth và ScaleHeight là thu c tính ch b r ng và b cao c a PictureBox, xem ph n Các thu c tính c a PictureBox)

i h t a đ sang h t a đ c a PictureBox:

H t a đ trong toán là Oxy (có tr c tung Oy h ng lên), còn h t a đ Ost c a PictureBox có

tr c tung Ot h ng xu ng Ngoài ra, 2 h t a đ này còn có đi m đ t g c t a đ khác nhau Vì

v y, đ v đ th hàm s , ta ph i chuy n t h Oxy sang h Ost Xem 2 ví d chuy n đ i sau

Ví d 1: V hàm y = Asin(x), v i A là m t s d ng, x t 02

i t a đ tr c hoành:

x: 0  2 s: 0  width (width = PictureBox.ScaleWidth)

 x/2 = s/width  x = s*2 /width

Os

Ot

(0,0)

PictureBox

Oxy Ost

Trang 3

3

i t a đ tr c tung:

y: -A  A t: height  0 (height = PictureBox.ScaleHeight)

 Ta th y y t ng (-A  A), t gi m (height  0), vì v y ta nhân t v i -1 đ t c ng t ng:

y: -A  A -t: -height  0

 Bây gi ta đ a m t đ u mút c a y và –t v cùng m t giá tr (trong bài này ta ch n

đ a v 0), b ng cách c ng y v i -A:

y-A: -2A  0 -t: -height  0

 y-A/-2A = -t/-height  t = (A-y)*height/2A

N u ta ch n A = height/2 thì t = A-y

Ví d 2: V hàm y = -x3 + 3x2 - 2, v i x t -a  a ho c y t -a  a (t c là g c t a đ Oxy n m chính gi a PictureBox)

i t a đ tr c hoành:

x: -a  a s: 0  width (width = PictureBox.ScaleWidth)

 Bây gi ta đ a m t đ u mút c a x và s v cùng m t giá tr (trong bài này ta ch n

đ a v 0), b ng cách c ng x v i a:

a+x: 0  2a s: 0  width

 (a+x)/2a = s/width  x = s*2a/width - a

Oxy Ost

Trang 4

4

i t a đ tr c tung:

y: -a  a t: height  0 (height = PictureBox.ScaleHeight)

 Ta th y y t ng (-a  a), t gi m (height  0), vì v y ta nhân t v i -1 đ t c ng t ng:

y: -a  a -t: -height  0

 Bây gi ta đ a m t đ u mút c a y và –t v cùng m t giá tr (trong bài này ta ch n

đ a v 0), b ng cách c ng y v i -a:

y-a: -2a  0 -t: -height  0

 y-a/-2a = -t/-height  t = (a-y)*height/2a

i m hi n t i (current graphics position) c a PictureBox:

Khi v các hình trong PictureBox, VB s t l u l i v trí c a l n v sau cùng và g i nó là i m

hi n t i T a đ c a đi m này đ c l u trong thu c tính CurrentX, CurrentY c a PictureBox

Ví d : Ban đ u, đi m hi n t i s là g c t a đ c a PictureBox (CurrentX=0, CurrentY=0) Sau

đó, ta v m t đi m lên PictureBox thì đi m hi n t i s là t a đ c a đi m này Sau đó, v ti p

m t đi m khác, thì đi m hi n t i là t a đ đi m m i v N u ta s m t đ ng th ng thì đi m

hi n t i s là đi m đ u cu i c a đ ng th ng (xem thêm v CurrentX ho c CurrentY trong MSDN)

Các thu c tính c a PictureBox:

 Cls: xóa n i dung đã có trên PictureBox

 AutoRedraw = True: t đ ng v l i n i dung trong PictureBox (ví d nh sau khi

PictureBox b che khu t hay đi u ch nh kích th c… )

 ForeColor: xác l p màu dùng đ v hình (màu đ ng vi n hình)

 DrawWidth: ch đ nh đ dày c a đ ng vi n khi v hình

 FillColor: xác l p màu dùng đ tô vào trong các hình Th ng dùng hàm RGB() đ ch

đ nh màu

 FillStyle: xác l p ki u tô trong các hình Ví d : VbFSTransparent: trong su t (m c đ nh

c a VB), vbFSSolid: tô kín b ng màu, vbVerticalLine: tô b ng các đ ng k d c,

vbCross: tô b ng đ ng ca rô (xem thêm trong MSDN)

 ScaleHeight, ScaleWidth: chi u cao và chi u r ng bên trong c a PictureBox (không tính

vi n c a PictureBox)

 Height, Width: chi u cao và chi u r ng c a PictureBox (có tính c vi n)

Các ph ng th c v c a PictureBox:

 PSet (x, y), [color]: v m t đi m (Point Set) t i t a đ (x, y) v i màu color

 Line (x1, y1) - (x2, y2), [color], [B][F]: v đ ng th ng t đi m (x1, y1) đ n đi m (x2, y2)

v i màu color N u không ch đ nh đi m (x1, y1) thì VB s l y đi m hi n t i (CurrentX,

CurrentY) làm đi m (x1, y1) N u ch đ nh thêm B: v hình ch nh t (Box) v i 2 đ nh là (x1, y1) và (x2, y2) N u ch đ nh BF: v hình ch nh t và tô màu vào bên trong (Fill),

màu tô là màu đ c ch đ nh b i thu c tính FillColor và FillStyle c a PictureBox

Trang 5

5

 Circle (x, y), radius, [color, start, end, aspect]: v cung tròn ho c hình tròn, hình ellipse

(x, y) là t a đ tâm

N u v hình tròn: radius là bán kính, aspect = 1

N u v ellipse: radius là bán kính l n h n trong 2 bán kính (xem hình bên d i), aspect

= bán kính tr c đ ng / bán kính tr c ngang

Hai hình sau v ellipse có ph ng trình:

Tham s start, end: góc b t đ u và k t thúc c a cung tròn (tính b ng radian) VB luôn luôn

tính góc theo chi u d ng (chi u ng c chi u kim đ ng h ) cho dù góc start và end là s

âm Tuy nhiên, khi ch đ nh góc là s âm, VB s v m t ph n hình tròn đóng (có th tô

màu), còn n u góc là s d ng VB ch v cung tròn (xem hình bên d i)

start = 2 , end = /2 start = - 2 , end = - /2

Các hàm c n bi t:

 RGB(do, xanhla, xanhduong): tr v màu s c theo h RGB v i các thông s màu s c có giá tr do, xanhla, xanhduong Ví d : RGB(0, 0, 255): màu xanh d ng

5 Th i l ng 4 ti t

6 N i dung th c hành

Bài th c hành có h ng d n chi ti t:

6.1 V đ ng ellipse 6

6.2 V ellipse và tô màu 7

6.3 V bi u đ tròn 9

6.4 V bi u đ c t 12

6.5 V đ th hàm sin 14

6.6 V đ th hàm b c 3 15

Bài th c hành t th c hi n: 7.1 V đ th hàm s l ng giác 17

b

a

b

a

a>b  radius = a, aspect = b/a

b>a  radius = b, aspect = b/a

Trang 6

6

6.1.1 Mô t

D li u vào: các bán kính a, b c a đ ng ellipse

D li u ra: đ ng ellipse t ng ng

i u khi n: nút cmdVe: th c hi n v ellipse

6.1.2 Th c hi n

0 M Visual Basic, ch n New Project/Standard EXE, và save vào th m c

Bai27_PictureBox_VeDuongEllipse (t t o tr c)

1 T o form nh hình:

2 Nh p đúp vào nút cmdVe và nh p code:

Private Sub cmdVe_Click()

Dim a As Integer, b As Integer

Dim xc As Integer, yc As Integer

Dim BanKinh As Integer

a = Val(txtA.Text)

b = Val(txtB.Text)

If a > b Then

BanKinh = a

Else

BanKinh = b

End If

xc = pic1.ScaleWidth / 2

yc = pic1.ScaleHeight / 2

pic1.Cls

pic1.Circle (xc, yc), BanKinh, RGB(0, 0, 255), , , b / a

End Sub

PictureBox:

pic1

Trang 7

7

3 L u và nh n nút Start hay F5 đ ch y và xem k t qu :

6.2.1 Mô t

D li u vào: các ch đ nh màu s c và ki u tô

D li u ra: hình ellipe v i màu s c và ki u tô t ng ng

i u khi n: các CheckBox và OptionButton

6.2.2 Th c hi n

0 M Visual Basic, ch n New Project/Standard EXE, và save vào th m c

Bai28_PictureBox_VeEllipseVaToMau (t t o tr c)

1 T o form nh hình:

2 Nh p đúp vào form và nh p code:

Private Sub Ve()

Dim R As Integer, G As Integer, B As Integer

Dim kieuto As Integer

Dim w As Integer, h As Integer

PictureBox:

pic1

Trang 8

8

If chkRed.Value = vbChecked Then

R = 255

Else

R = 0

End If

If chkGreen.Value = vbChecked Then

G = 255

Else

G = 0

End If

If chkBlue.Value = vbChecked Then

B = 255

Else

B = 0

End If

If optSolid.Value = True Then

kieuto = vbFSSolid

ElseIf optVerticalLine.Value = True Then

kieuto = vbVerticalLine

Else

kieuto = vbCross

End If

pic1.Cls

pic1.AutoRedraw = True

pic1.ForeColor = RGB(0, 0, 255)

pic1.DrawWidth = 3

pic1.FillColor = RGB(R, G, B)

pic1.FillStyle = kieuto

w = pic1.ScaleWidth

h = pic1.ScaleHeight

pic1.Circle (w / 2, h / 2), w / 2, , , , h / w

End Sub

Private Sub Form_Load()

Call Ve

End Sub

3 L n l t nh p đúp vào các CheckBox và nh p code:

Private Sub chkBlue_Click()

Call Ve

End Sub

Trang 9

9

Private Sub chkGreen_Click()

Call Ve

End Sub

Private Sub chkRed_Click()

Call Ve

End Sub

4 L n l t nh p đúp vào các OptionButton và nh p code:

Private Sub optCross_Click()

Call Ve

End Sub

Private Sub optSolid_Click()

Call Ve

End Sub

Private Sub optVerticalLine_Click()

Call Ve

End Sub

5 L u và nh n nút Start hay F5 đ ch y và xem k t qu :

6.3.1 Mô t

D li u vào: s li u cho 4 ph n c a bi u đ

D li u ra: bi u đ tròn v i 4 ph n t ng ng

i u khi n: nút cmdVe: th c hi n v bi u đ

6.3.2 Th c hi n

0 M Visual Basic, ch n New Project/Standard EXE, và save vào th m c

Bai29_PictureBox_VeBieuDoTron (t t o tr c)

Trang 10

10

1 T o form nh hình:

2 Nh p đúp vào nút cmdVe và nh p code:

Private Sub cmdVe_Click()

Dim phan1 As Integer, phan2 As Integer, phan3 As Integer, phan4 As Integer

Dim tong As Integer

Dim gocdau As Double, goccuoi As Double

Dim PI As Double

Dim xc As Integer, yc As Integer

PI = 4# * Atn(1#)

xc = pic.ScaleWidth / 2

yc = pic.ScaleHeight / 2

phan1 = Val(txtPhan1.Text)

phan2 = Val(txtPhan2.Text)

phan3 = Val(txtPhan3.Text)

phan4 = Val(txtPhan4.Text)

tong = phan1 + phan2 + phan3 + phan4

pic.Cls

pic.AutoRedraw = True

pic.ForeColor = RGB(0, 0, 255)

pic.DrawWidth = 2

pic.FillStyle = vbFSSolid

'Ve Phan 1

pic.FillColor = RGB(255, 0, 0)

gocdau = 2 * PI

goccuoi = (phan1 / tong) * 2 * PI

PictureBox:

pic

Trang 11

11

pic.Circle (xc, yc), pic.ScaleWidth / 2 100, , gocdau, -goccuoi

'Ve Phan 2

pic.FillColor = RGB(0, 255, 0)

gocdau = goccuoi

goccuoi = gocdau + (phan2 / tong) * 2 * PI

pic.Circle (xc, yc), pic.ScaleWidth / 2 200, , gocdau, -goccuoi

'Ve Phan 3

pic.FillColor = RGB(255, 255, 0)

gocdau = goccuoi

goccuoi = gocdau + (phan3 / tong) * 2 * PI

pic.Circle (xc, yc), pic.ScaleWidth / 2 200, , gocdau, -goccuoi

'Ve Phan 4

pic.FillColor = RGB(255, 0, 255)

gocdau = goccuoi

goccuoi = gocdau + phan4 / tong * 2 * PI

pic.Circle (xc, yc), pic.ScaleWidth / 2 200, , gocdau, -goccuoi

End Sub

3 L u và nh n nút Start hay F5 đ ch y và xem k t qu :

Trang 12

12

6.4.1 Mô t

D li u vào: s li u cho 4 c t c a bi u đ

D li u ra: bi u đ c t v i 4 c t t ng ng

i u khi n: nút cmdVe: th c hi n v bi u đ

6.4.2 Th c hi n

0 M Visual Basic, ch n New Project/Standard EXE, và save vào th m c

Bai30_PictureBox_VeBieuDoCot (t t o tr c)

1 T o form nh hình:

2 Nh p đúp vào nút cmdVe và nh p code:

Private Sub cmdVe_Click()

Dim c1 As Integer, c2 As Integer, c3 As Integer, c4 As

Integer

Dim cmax As Integer

Dim ChieuRongCot As Integer, ChieuCaoCot As Integer

c1 = Val(txtCot(0).Text)

c2 = Val(txtCot(1).Text)

c3 = Val(txtCot(2).Text)

c4 = Val(txtCot(3).Text)

cmax = c1

If c2 > cmax Then

cmax = c2

End If

If c3 > cmax Then

cmax = c3

End If

If c4 > cmax Then

cmax = c4

End If

PictureBox:

pic

Trang 13

13

pic.Cls

pic.AutoRedraw = True

pic.ForeColor = RGB(0, 0, 255)

pic.DrawWidth = 3

ChieuRongCot = pic.ScaleWidth / 4

pic.FillColor = RGB(255, 0, 0)

'Ve Cot 1

pic.FillStyle = vbVerticalLine

ChieuCaoCot = (c1 / cmax) * pic.ScaleHeight

pic.Line (0, Height)-(ChieuRongCot, pic.ScaleHeight -

ChieuCaoCot), , B

'Ve Cot 2

pic.FillStyle = vbHorizontalLine

ChieuCaoCot = (c2 / cmax) * pic.ScaleHeight

pic.Line (ChieuRongCot, Height)-(ChieuRongCot * 2,

pic.ScaleHeight - ChieuCaoCot), , B

'Ve Cot 3

pic.FillStyle = vbCross

ChieuCaoCot = (c3 / cmax) * pic.ScaleHeight

pic.Line (ChieuRongCot * 2, Height)-(ChieuRongCot * 3,

pic.ScaleHeight - ChieuCaoCot), , B

'Ve Cot 4

pic.FillStyle = vbDiagonalCross

ChieuCaoCot = (c4 / cmax) * pic.ScaleHeight

pic.Line (ChieuRongCot * 3, Height)-(ChieuRongCot * 4,

pic.ScaleHeight - ChieuCaoCot), , B

End Sub

3 L u và nh n nút Start hay F5 đ ch y và xem k t qu :

Trang 14

14

6.5.1 Mô t

D li u vào: không có

D li u ra: đ th hàm sin

i u khi n: không có (đ th s đ c v khi s ki n Form_Paint (v form) x y ra)

6.5.2 Th c hi n

0 M Visual Basic, ch n New Project/Standard EXE, và save vào th m c

Bai31_PictureBox_VeDoThiHamSin (t t o tr c)

1 T o form nh hình:

2 Nh p đúp vào form và nh p code:

Private Sub Form_Paint()

Dim x As Double, y As Double

Dim s As Integer, t As Integer

Dim A As Integer

Dim width As Integer, height As Integer

Dim PI As Double

Dim SoChuKy As Integer

width = pic1.ScaleWidth

height = pic1.ScaleHeight

A = height \ 2

PI = 4 * Atn(1)

pic1.AutoRedraw = True

PictureBox:

pic1

Trang 15

15

'Ve truc Ox

pic1.Line (0, height / 2)-(width, height / 2)

pic1.DrawWidth = 3

'Ve 2 chu ky

SoChuKy = 2

For s = 0 To width Step 1

x = SoChuKy * 2 * PI * s / width

y = A * Sin(x)

t = A - y

pic1.PSet (s, t), RGB(255, 0, 0)

Next

End Sub

3 L u và nh n nút Start hay F5 đ ch y và xem k t qu :

6.6.1 Mô t

D li u vào: hàm b c 3: y = -x3 + 3x2– 2

D li u ra: đ th hàm b c 3: y = -x3

+ 3x2 - 2, v i x có giá tr t -a  a ho c y t -a  a (a là s

d ng tùy ý)

i u khi n: không có (đ th s đ c v khi s ki n Form_Paint (v form) x y ra)

6.6.2 Th c hi n

0 M Visual Basic, ch n New Project/Standard EXE, và save vào th m c

Bai32_PictureBox_VeDoThiHamBac3 (t t o tr c)

1 Không c n thi t k form (vì v tr c ti p lên form)

Ngày đăng: 06/01/2021, 08:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w