程序代码
<%
옵션 명시적
클래스 FiveStarredFlag
개인 너비
개인 신장
개인 필러
개인 크기이미지
개인 파일 크기
비공개 BitMap()
비공개 하위 클래스_초기화
높이 = 200
너비 = 300
필러 = (32 - 너비 Mod 32) Mod 32
SizeImage = (너비 + 필러) * 높이 8
FileSize = 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
End Sub
Private Sub Class_Terminate
Response.ContentType = "이미지/bmp"
Response.BinaryWrite FileHeader & InfoHeader & Palette & ImageData
End Sub
Private Sub Star(x, y, r, a)
희미한 파이, v, d, i, j, k, m2
파이 = 3.1415926535897932
v = r * Sin(pi * 0.1) / Sin(pi * 0.7)
For 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 / 파이
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
종료 조건
종료 조건
다음
다음
End Sub
개인 함수 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
개인 속성 FileHeader 가져오기
상수 파일 유형 = &H4D42
Const Reserved1 = 0
Const Reserved2 = 0
Const OffBits = 62
FileHeader = CWord(파일 유형) & CDWord(파일 크기) & CWord(예약1) & CWord(예약2) & CDWord(OffBits)
끝 속성
개인 속성 Get InfoHeader
상수 InfoSize = 40
Const 평면 = 1
상수 BitCount = 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(Clr중요)
끝 속성
개인 속성 팔레트 가져오기
Const BackColor = &HFF0000
Const ForeColor = &HFFFF00
팔레트 = CDWord(BackColor) & CDWord(ForeColor)
끝 속성
개인 속성 Get 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로
수업 종료
끝
%>