|
Imports
System.Drawing.Drawing2D
Imports
System.Math
Public
Class
VeDuongBieuDienHamLuongGiac
Dim
CacDiemTrenDoThi(359) As
PointF, BienDem
As
Integer
Dim KhoangChiaDo
As
Double, ViTriTrucHoanh
As
Double
Dim gNoiVe
As Graphics
Dim pDuongBieuDien
As Pen =
New Pen(Color.Blue, 2)
Dim pTrucHoanh
As Pen =
New Pen(Color.Red, 1)
Private
Sub
VeDuongBieuDienHamLuongGiac_Load(ByVal
sender As _
System.Object, ByVal e As System.EventArgs) _
Handles
MyBase.Load
KhoangChiaDo = pnlNoiVeDuongBieuDien.Width / 360
ViTriTrucHoanh = CInt(pnlNoiVeDuongBieuDien.Height
/ 2 - 1)
pTrucHoanh.DashStyle = DashStyle.Dash
‘Nét ngắt quãng
gNoiVe = pnlNoiVeDuongBieuDien.CreateGraphics
gNoiVe.SmoothingMode = SmoothingMode.HighQuality
‘Nét vẽ mượt mà
End
Sub
Private
Sub cmdSine_Click(ByVal
sender As System.Object,
_
ByVal e
As System.EventArgs)
Handles cmdSine.Click
For BienDem = 0
To 359
CacDiemTrenDoThi(BienDem) =
New _
Point(Round(BienDem * KhoangChiaDo), _
ViTriTrucHoanh - ViTriTrucHoanh * Sin(PI
* BienDem / 180))
Next
Call
VeDuongBieuDien("Sine")
End
Sub
Private
Sub cmdCosine_Click(ByVal sender As System.Object, _
ByVal e
As System.EventArgs)
Handles cmdCosine.Click
For BienDem = 0
To 359
CacDiemTrenDoThi(BienDem) =
New _
Point(Round(BienDem * KhoangChiaDo), _
ViTriTrucHoanh - ViTriTrucHoanh * Cos(PI
* BienDem / 180))
Next
Call
VeDuongBieuDien("Cosine")
End
Sub
Private
Sub cmdTangent_Click(ByVal
sender As System.Object,
_
ByVal e
As System.EventArgs)
Handles cmdTangent.Click
Dim myTan
As
Double
For BienDem = 0
To 359
Try
myTan = Tan(PI * BienDem / 180) * 4
CacDiemTrenDoThi(BienDem) =
New _
Point(Round(BienDem * KhoangChiaDo), _
ViTriTrucHoanh - myTan)
Catch
If Tan(PI *
BienDem / 180) * 4 > ViTriTrucHoanh
Then
CacDiemTrenDoThi(BienDem) =
New _
Point(Round(BienDem * KhoangChiaDo), _
pnlNoiVeDuongBieuDien.Height)
Else
CacDiemTrenDoThi(BienDem) =
New _
Point(Round(BienDem * KhoangChiaDo), 0)
End
If
End
Try
Next
Call
VeDuongBieuDien("Tangent")
End
Sub
Sub VeDuongBieuDien(ByVal
sTenHam As
String)
With gNoiVe
.Clear(pnlNoiVeDuongBieuDien.BackColor)
.DrawString(sTenHam, New
Font("Times New Roman",
14), _
New
SolidBrush(Color.Green), 120, 20)
.DrawLine(pTrucHoanh, 0,
CInt(ViTriTrucHoanh), _
pnlNoiVeDuongBieuDien.Width,
CInt(ViTriTrucHoanh))
.DrawCurve(pDuongBieuDien, CacDiemTrenDoThi)
End
With
End
Sub
End
Class |