Membuat Colormap Pada Visual Basic 6 (VB6)

Color map adalah salah satu cara penyajian sebaran data dalam bentuk sebaran visual. Dengan menggambarkan sebaran data dalam gradasi warna akan lebih mudah dalam menganalisis sebaran data dalam bentuk ruang. Sebaran data akan dapat dengan cepat diketahui dan dianalisa secara spasial.

Sebuah angka dapat dikonversikan ke dalam range data dengan mewakilkan kedalam sebuah warna yang diketahui nilai maksimum dan minimum range tersebut. Banyak sekali tipe color map, dengan menggunakan VB 6 dapat dibuat dengan memetakan nilai kedalam warna dengan kombinasi dari warna utama RGB.

contoh script yang dapat digunakan adalah sebagai berikut:

Dim clr As OLE_COLOR

‘ Map a value to a rainbow color.
Private Function MapRainbowColor(ByVal value As Single, ByVal red_value As Single, ByVal blue_value As Single) As OLE_COLOR
Dim int_value As Integer

‘ Convert into a value between 0 and 1023.
int_value = Int(1023 * (value – red_value) / (blue_value – red_value))

‘ Map different color bands.
If (int_value < 256) Then
‘ Red to yellow. (255, 0, 0) to (255, 255, 0).
MapRainbowColor = RGB(255, int_value, 0)
ElseIf (int_value < 512) Then
‘ Yellow to green. (255, 255, 0) to (0, 255, 0).
int_value = int_value – 256
MapRainbowColor = RGB(255 – int_value, 255, 0)
ElseIf (int_value < 768) Then
‘ Green to aqua. (0, 255, 0) to (0, 255, 255).
int_value = int_value – 512
MapRainbowColor = RGB(0, 255, int_value)
Else
‘ Aqua to blue. (0, 255, 255) to (0, 0, 255).
int_value = int_value – 768
MapRainbowColor = RGB(0, 255 – int_value, 255)
End If
End Function

Source code lengkap dapat didownload disini.

Untuk Sour Code Lengkap sebagai berikut:

Dim clr As OLE_COLOR

‘ Map a value to a rainbow color.
Private Function MapRainbowColor(ByVal value As Single, ByVal red_value As Single, ByVal blue_value As Single) As OLE_COLOR
Dim int_value As Integer

‘ Convert into a value between 0 and 1023.
int_value = Int(1023 * (value – red_value) / (blue_value – red_value))

‘ Map different color bands.
If (int_value < 256) Then
‘ Red to yellow. (255, 0, 0) to (255, 255, 0).
MapRainbowColor = RGB(255, int_value, 0)
ElseIf (int_value < 512) Then
‘ Yellow to green. (255, 255, 0) to (0, 255, 0).
int_value = int_value – 256
MapRainbowColor = RGB(255 – int_value, 255, 0)
ElseIf (int_value < 768) Then
‘ Green to aqua. (0, 255, 0) to (0, 255, 255).
int_value = int_value – 512
MapRainbowColor = RGB(0, 255, int_value)
Else
‘ Aqua to blue. (0, 255, 255) to (0, 0, 255).
int_value = int_value – 768
MapRainbowColor = RGB(0, 255 – int_value, 255)
End If
End Function

Private Sub Form_Load()
VScroll1.value = 0
VScroll1.Max = Val(Text1.Text)
VScroll1.Min = Val(Text2.Text)
VScroll1_Change
End Sub

Private Sub Text1_Change()
VScroll1.Max = Val(Text1.Text)

End Sub

Private Sub Text2_Change()
VScroll1.Min = Val(Text2.Text)
End Sub

Private Sub VScroll1_Change()
VScroll1.Max = Val(Text1.Text)
VScroll1.Min = Val(Text2.Text)

Label3.Caption = VScroll1.value
clr = MapRainbowColor(VScroll1.value, Val(Text2.Text), Val(Text1.Text))
Picture1.BackColor = clr
End Sub

You may also like...

Leave a Reply