程序代码
<%
选项显式
类 FiveStarredFlag
私有宽度
私人高度
私人填料
私人尺寸图片
私有文件大小
私有 BitMap()
私有子类_初始化
高度 = 200
宽度 = 300
填充物 = (32 - 宽度 Mod 32) Mod 32
图像大小 =(宽度 + 填充)* 高度 8
文件大小 = SizeImage + 14 + 40 + 8
ReDim BitMap(宽度 + 填充物 - 1, 高度 - 1)
星形高度 * 0.25, 高度 * 0.75, 高度 * 0.15, 0
星形宽度/3,高度*0.9,高度*0.05,120.9637565320735
星形宽度*0.4,高度*0.8,高度*0.05,98.13010235415598
星形宽度 * 0.4,高度 * 0.65,高度 * 0.05,74.0546040990771
星形宽度/3,高度*0.55,高度*0.05,51.3401917459099
结束子
私有子类_
终止
Response.ContentType =“图像/bmp”
Response.BinaryWrite FileHeader & InfoHeader & Palette & ImageData
End Sub
Private Sub Star(x, y, r, a)
暗淡 pi, v, d, i, j, k, m2
pi = 3.1415926535897932
v = r * Sin(pi * 0.1) / Sin(pi * 0.7)
对于 j = -r To r
对于 i = -r 至 r
d = Sqr(i ^ 2 + j ^ 2)
如果 d < v 则
位图(x + i, y + j) = 1
ElseIf d < r 那么
如果 i = 0 则
如果 j > 0 则 k = 90 否则 k = -90
别的
k = Atn(j / i) * 180 / pi
如果 i < 0 则 k = k + 180
结束 如果
k = k - a - 18
当 k < 0 时
k = k + 360
文德
当 k >= 360 时
k = k - 360
文德
当 k >= 72 时
k = k - 72
文德
如果 k > 36 则 k = 72 - k
m2 = d ^ 2 + r ^ 2 - d * r * 2 * Cos(k * pi / 180)
如果 (m2 + r ^ 2 - d ^ 2) / (Sqr(m2) * r * 2) > Cos(pi * 0.1) 那么
位图(x + i, y + j) = 1
结束如果
结束如果
下一个
下一个
结束子
私有函数 CWord(I16)
CWord = ChrB(I16 和 &HFF) & ChrB(I16 256 和 &HFF)
结束函数
私有函数 CDWord(I32)
CDWord = ChrB(I32 和 &HFF) & ChrB(I32 256 和 &HFF) & ChrB(I32 65536 和 &HFF) & ChrB(I32 &HFFFFFF 和 &HFF)
结束功能
'www.knowsky.com
私有属性获取文件头
常量文件类型 = &H4D42
常量保留 1 = 0
常量保留 2 = 0
常量关闭位 = 62
文件头 = CWord(文件类型) & CDWord(文件大小) & CWord(保留 1) & CWord(保留 2) & CDWord(OffBits)
结束属性
私有属性获取 InfoHeader
常量信息大小 = 40
常量平面 = 1
常数位计数 = 1
常量压缩 = 0
常量 XPelsPerMeter = 0
常量 YPelsPerMeter = 0
常量 ClrUsed = 0
常量 ClrImportant = 0
InfoHeader = CDWord(InfoSize) & CDWord(宽度) & CDWord(高度) & CWord(平面) & CWord(BitCount) & CDWord(压缩) & CDWord(SizeImage) & CDWord(XPelsPerMeter) & CDWord(YPelsPerMeter) & CDWord(ClrUsed) ) & CDWord(重要)
结束财产
私有财产获取调色板
常量背景颜色 = &HFF0000
常量前景色 = &HFFFF00
调色板 = CDWord(背景色) & CDWord(前景色)
结束属性
私有属性获取ImageData
调暗我,j
图像数据=“”
对于 j = 0 到高度 - 1
对于 i = 0 到宽度 + 填充 - 1 第 8 步
ImageData = ImageData & ChrB(BitMap(i, j) * 128 或 BitMap(i + 1, j) * 64 或 BitMap(i + 2, j) * 32 或 BitMap(i + 3, j) * 16 或 BitMap( i + 4, j) * 8 或 BitMap(i + 5, j) * 4 或 BitMap(i + 6, j) * 2 或 BitMap(i + 7, j))
下一个
下一个
结束财产
以新的 FiveStarredFlag
结束课程
结束于
%>