程序代码
<%
Opção
Classe Explícita FiveStarredFlag
Largura privada
Altura Privada
Preenchimento Privado
Imagem de tamanho privado
Tamanho do arquivo privado
BitMap privado()
Subclasse privada_Initialize
Altura = 200
Largura = 300
Preenchimento = (32 - Largura Mod 32) Mod 32
SizeImage = (Largura + Preenchimento) * Altura 8
FileSize = SizeImage + 14 + 40 + 8
ReDim BitMap (Largura + Preenchimento - 1, Altura - 1)
Altura da estrela * 0,25, Altura * 0,75, Altura * 0,15, 0
Largura da estrela / 3, Altura * 0,9, Altura * 0,05, 120,9637565320735
Largura da estrela * 0,4, Altura * 0,8, Altura * 0,05, 98,13010235415598
Largura da estrela * 0,4, Altura * 0,65, Altura * 0,05, 74,0546040990771
Largura da estrela / 3, Altura * 0,55, Altura * 0,05, 51,3401917459099
Fim Sub
Privado Subclasse_Terminate
Response.ContentType = "imagem/bmp"
Response.BinaryWrite FileHeader e InfoHeader e Palette e ImageData
Fim Sub
Privado Sub Estrela (x, y, r, a)
Dim pi, v, d, i, j, k, m2
pi = 3,1415926535897932
v = r * Sin (pi * 0,1) / Sin (pi * 0,7)
Para j = -r Para r
Para eu = -r Para r
d = Sqr (i ^ 2 + j ^ 2)
Se d < v Então
Mapa de bits (x + i, y + j) = 1
ElseIf d < r Então
Se eu = 0 então
Se j > 0 Então k = 90 Caso contrário, k = -90
Outro
k = Atn(j/i) * 180/pi
Se eu <0 Então k = k + 180
Fim se
k = k - a - 18
Enquanto k < 0
k = k + 360
Wend
Enquanto k >= 360
k = k - 360
Wend
Enquanto k >= 72
k = k - 72
Wend
Se k > 36 Então k = 72 - k
m2 = d ^ 2 + r ^ 2 - d * r * 2 * Cos(k * pi / 180)
Se (m2 + r ^ 2 - d ^ 2) / (Sqr(m2) * r * 2) > Cos(pi * 0,1) Então
Mapa de bits (x + i, y + j) = 1
Terminar se
Terminar se
Próximo
Próximo
Finalizar
função subprivada CWord (I16)
CWord = ChrB(I16 E &HFF) & ChrB(I16 256 E &HFF)
Função final
Função privada CDWord (I32)
CDWord = ChrB(I32 E &HFF) & ChrB(I32 256 E &HFF) & ChrB(I32 65536 E &HFF) & ChrB(I32 &HFFFFFF E &HFF)
Função final
'www.knowsky.com
Propriedade privada Obtenha FileHeader
Tipo de arquivo const = &H4D42
Const Reservado1 = 0
Const Reservado2 = 0
Const OffBits = 62
FileHeader = CWord (Tipo de arquivo) & CDWord (Tamanho do arquivo) & CWord (Reservado1) & CWord (Reservado2) & CDWord (OffBits)
Propriedade final
Propriedade privada Obter InfoHeader
Const InfoTamanho = 40
Planos Const = 1
Contagem constante de bits = 1
Compressão Const = 0
Const XPelsPerMeter = 0
Const YPelsPerMeter = 0
Const ClrUsado = 0
Const ClrImportante = 0
InfoHeader = CDWord (InfoSize) & CDWord (Largura) & CDWord (Altura) & CWord (Planos) & CWord (BitCount) & CDWord (Compressão) & CDWord (SizeImage) & CDWord (XPelsPerMeter) & CDWord (YPelsPerMeter) & CDWord (ClrUsed ) & CDWord(ClrImportante)
Propriedade final
Propriedade privada Obter paleta
Const BackColor = &HFF0000
Const ForeColor = &HFFFF00
Paleta = CDWord(BackColor) e CDWord(ForeColor)
Propriedade final
Propriedade privada Obter ImageData
Dim eu, j
Dadosdaimagem = ""
Para j = 0 Para Altura - 1
Para i = 0 Para Largura + Preenchimento - 1 Etapa 8
ImageData = ImageData & ChrB(BitMap(i, j) * 128 ou BitMap(i + 1, j) * 64 ou BitMap(i + 2, j) * 32 ou BitMap(i + 3, j) * 16 ou BitMap( i + 4, j) * 8 ou BitMap(i + 5, j) * 4 ou BitMap(i + 6, j) * 2 ou BitMap(i + 7, j))
Próximo
Próximo
Fim da propriedade
Termine a aula
com o novo FiveStarredFlag
Terminar com
%>