程序代码
<%
Opsi
Kelas Eksplisit FiveStarredFlag
Lebar Pribadi
Tinggi Pribadi
Pengisi Pribadi
Ukuran PribadiGambar
Ukuran File Pribadi
BitMap Pribadi()
Sub Kelas Pribadi_Inisialisasi
Tinggi = 200
Lebar = 300
Pengisi = (32 - Mod Lebar 32) Mod 32
SizeImage = (Lebar + Pengisi) * Tinggi 8
FileSize = SizeImage + 14 + 40 + 8
ReDim BitMap(Lebar + Pengisi - 1, Tinggi - 1)
Tinggi Bintang * 0,25, Tinggi * 0,75, Tinggi * 0,15, 0
Lebar Bintang / 3, Tinggi * 0,9, Tinggi * 0,05, 120.9637565320735
Lebar Bintang * 0,4, Tinggi * 0,8, Tinggi * 0,05, 98.13010235415598
Lebar Bintang * 0,4, Tinggi * 0,65, Tinggi * 0,05, 74.0546040990771
Lebar Bintang / 3, Tinggi * 0,55, Tinggi * 0,05, 51.3401917459099
Akhiri Sub
Privat Sub Kelas_Terminate
Respon.ContentType = "gambar/bmp"
Response.BinaryWrite FileHeader & InfoHeader & Palet & ImageData
Sub Akhir
Sub Bintang Swasta (x, y, r, a)
Redupkan pi, v, d, i, j, k, m2
pi = 3,1415926535897932
v = r * Sin(pi * 0,1) / Sin(pi * 0,7)
Untuk j = -r Ke r
Untuk i = -r Ke r
d = Kuadrat(i ^ 2 + j ^ 2)
Jika d < v Maka
BitMap(x + i, y + j) = 1
ElseIf d < r Maka
Jika i = 0 Maka
Jika j > 0 Maka k = 90 Jika tidak, k = -90
Kalau tidak
k = Atn(j / i) * 180 / pi
Jika i < 0 Maka k = k + 180
Berakhir Jika
k = k - a - 18
Sedangkan k < 0
k = k + 360
Pergi ke
Sedangkan k >= 360
k = k - 360
Pergi ke
Sedangkan k >= 72
k = k - 72
Pergi ke
Jika k > 36 Maka k = 72 - k
m2 = d ^ 2 + r ^ 2 - d * r * 2 * Cos(k * pi / 180)
Jika (m2 + r ^ 2 - d ^ 2) / (Kuadrat(m2) * r * 2) > Cos(pi * 0,1) Maka
BitMap(x + i, y + j) = 1
Akhiri Jika
Akhiri Jika
Berikutnya
Berikutnya
Akhiri Sub
Fungsi Pribadi CWord (I16)
CWord = ChrB(I16 Dan &HFF) & ChrB(I16 256 Dan &HFF)
Fungsi Akhir
Fungsi Pribadi CDWord(I32)
CDWord = ChrB(I32 Dan &HFF) & ChrB(I32 256 Dan &HFF) & ChrB(I32 65536 Dan &HFF) & ChrB(I32 &HFFFFFF Dan &HFF)
Fungsi Akhir
'www.knowsky.com
Properti Pribadi Dapatkan FileHeader
Tipe File Const = &H4D42
Konstan Dicadangkan1 = 0
Konstan Dicadangkan2 = 0
Konstan OffBits = 62
FileHeader = CWord(Jenis File) & CDWord(Ukuran File) & CWord(Reserved1) & CWord(Reserved2) & CDWord(OffBits)
Properti Akhir
Properti Pribadi Dapatkan InfoHeader
Ukuran Info Konstan = 40
Bidang Const = 1
Konstan BitCount = 1
Kompresi Konstan = 0
Konstan XPelsPerMeter = 0
Konstanta YPelsPerMeter = 0
Const ClrDigunakan = 0
Const ClrPenting = 0
InfoHeader = CDWord(InfoSize) & CDWord(Lebar) & CDWord(Tinggi) & CWord(Pesawat) & CWord(BitCount) & CDWord(Kompresi) & CDWord(SizeImage) & CDWord(XPelsPerMeter) & CDWord(YPelsPerMeter) & CDWord(ClrUsed ) & CDWord(ClrPenting)
Properti Akhir
Properti Pribadi Dapatkan Palet
Const BackColor = &HFF0000
Const Warna Depan = &HFFFF00
Palet = CDWord(Warna Belakang) & CDWord(Warna Depan)
Properti Akhir
Properti Pribadi Dapatkan ImageData
Redupkan aku, j
Data Gambar = ""
Untuk j = 0 Ke Tinggi - 1
Untuk i = 0 Ke Lebar + Pengisi - 1 Langkah 8
ImageData = ImageData & ChrB(BitMap(i, j) * 128 atau BitMap(i + 1, j) * 64 atau BitMap(i + 2, j) * 32 atau BitMap(i + 3, j) * 16 atau BitMap( i + 4, j) * 8 atau BitMap(i + 5, j) * 4 atau BitMap(i + 6, j) * 2 atau BitMap(i + 7, j))
Berikutnya
Berikutnya
Properti Akhir
Akhiri Kelas
Dengan FiveStarredFlag Baru
Akhiri Dengan
%>