程序代码
<%
Opción
Clase explícita FiveStarredFlag
Ancho privado
Altura privada
Relleno privado
Imagen de tamaño privado
Tamaño de archivo privado
BitMap privado()
Subclase privada_Initialize
Altura = 200
Ancho = 300
Relleno = (32 - Ancho Mod 32) Mod 32
TamañoImagen = (Ancho + Relleno) * Alto 8
Tamaño de archivo = TamañoImagen + 14 + 40 + 8
ReDim BitMap (Ancho + Relleno - 1, Alto - 1)
Alto de estrella * 0,25, Alto * 0,75, Alto * 0,15, 0
Ancho de estrella / 3, Alto * 0,9, Alto * 0,05, 120,9637565320735
Ancho de estrella * 0,4, Alto * 0,8, Alto * 0,05, 98.13010235415598
Ancho de estrella * 0,4, Alto * 0,65, Alto * 0,05, 74.0546040990771
Ancho de estrella / 3, Alto * 0,55, Alto * 0,05, 51.3401917459099
Finalizar subclase
subprivada_Terminar
Respuesta.ContentType = "imagen/bmp"
Response.BinaryWrite FileHeader y InfoHeader y paleta y ImageData
Fin Sub
Estrella Sub Privada(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 To r
Para i = -r Para r
d = Sqr(i ^ 2 + j ^ 2)
Si d < v Entonces
Mapa de bits(x + i, y + j) = 1
De lo contrario, si d < r entonces
Si i = 0 entonces
Si j > 0 Entonces k = 90 En caso contrario k = -90
Demás
k = Atn(j / i) * 180 / pi
Si i < 0 Entonces k = k + 180
Fin si
k = k - a - 18
Mientras k < 0
k = k + 360
Encaminarse a
Mientras k >= 360
k = k - 360
Encaminarse a
Mientras k >= 72
k = k - 72
Encaminarse a
Si k > 36 Entonces k = 72 - k
m2 = d ^ 2 + r ^ 2 - d * r * 2 * Cos(k * pi / 180)
Si (m2 + r ^ 2 - d ^ 2) / (Sqr(m2) * r * 2) > Cos(pi * 0,1) Entonces
Mapa de bits(x + i, y + j) = 1
Terminar si
Terminar si
Próximo
Próximo
Fin de
función subprivada CWord(I16)
PalabraC = ChrB(I16 y &HFF) & ChrB(I16 256 y &HFF)
Función final
Función privada CDWord(I32)
CDWord = ChrB(I32 y &HFF) & ChrB(I32 256 y &HFF) & ChrB(I32 65536 y &HFF) & ChrB(I32 &HFFFFFF y &HFF)
Función final
'www.knowsky.com
Propiedad privada Obtener FileHeader
Tipo de archivo constante = &H4D42
Constante reservada1 = 0
Constante reservada2 = 0
Bits de descuento constantes = 62
Encabezado de archivo = CWord(Tipo de archivo) & CDWord(Tamaño de archivo) & CWord(Reservado1) & CWord(Reservado2) & CDWord(OffBits)
Propiedad final
Propiedad privada Obtener InfoHeader
Tamaño de información constante = 40
Planos constantes = 1
Conteo de bits constante = 1
Compresión constante = 0
XPels constantes por metro = 0
YPelsPerMeter constantes = 0
Const ClrUsado = 0
Const ClrImportante = 0
InfoHeader = CDWord(InfoSize) & CDWord(Ancho) & CDWord(Alto) & CWord(Planos) & CWord(BitCount) & CDWord(Compresión) & CDWord(SizeImage) & CDWord(XPelsPerMeter) & CDWord(YPelsPerMeter) & CDWord(ClrUsed ) & CDWord(ClrImportante)
Propiedad final
Propiedad privada Obtener paleta
Color de fondo constante = &HFF0000
Color frontal constante = &HFFFF00
Paleta = CDWord(BackColor) y CDWord(ForeColor)
Propiedad final
Propiedad privada Obtener ImageData
tenue i, j
Datos de imagen = ""
Para j = 0 a altura - 1
Para i = 0 A Ancho + Relleno - 1 Paso 8
ImageData = ImageData & ChrB(BitMap(i, j) * 128 o BitMap(i + 1, j) * 64 o BitMap(i + 2, j) * 32 o BitMap(i + 3, j) * 16 o BitMap( i + 4, j) * 8 o BitMap(i + 5, j) * 4 o BitMap(i + 6, j) * 2 o BitMap(i + 7, j))
Próximo
Próximo
Propiedad final
Finalice la clase
con la nueva FiveStarredFlag
Terminar con
%>