<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[WindKer'Blog - ASP]]></title>
<link>http://www.icediary.net/</link>
<description><![CDATA[分享程序生活的点点滴滴！！]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[470280558@qq.com(WindKer)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>WindKer&#39;Blog</title>
	<url>http://www.icediary.net/images/logos.gif</url>
	<link>http://www.icediary.net/</link>
	<description>WindKer&#39;Blog</description>
</image>

			<item>
			<link>http://www.icediary.net/article.asp?id=300</link>
			<title><![CDATA[asp验证码，很不错]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Fri,03 Sep 2010 10:04:38 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=300</guid>
		<description><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.icediary.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/><br/>&lt;%<br/>Const nMaxSaturation = 100&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#39; 最大色彩饱和度<br/>Const nBlankNoisyDotOdds = 0&nbsp;&nbsp;&#39; 空白处噪点率<br/>Const nColorNoisyDotOdds = 0 &#39; 有色处噪点率<br/>Const nCharCount = 4&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#39; 产生的字符个数<br/>Const nPixelWidth = 15&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#39; 单个字符位图的宽度<br/>Const nPixelHeight = 15&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&nbsp;&nbsp;&#39; 单个字符位图的高度<br/>Const nColorHue = -2&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#39; 显示验证码的色调(-1表示随机色调, -2表示灰度色调)<br/>Const nAngleRandom = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 角度随机量<br/>Const nLengthRandom = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 长度随机量(百分比)<br/>Const cCharSet = &#34;0123456789&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 构成验证码的字符集<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 如果扩充了下边的字母矢量库，则可以相应扩充这个字符集<br/><br/>Dim Buf(), DigtalStr<br/>Dim Lines(), LineCount<br/>Dim CursorX, CursorY, DirX, DirY<br/><br/>Randomize<br/>Call CreatValidCode(&#34;CheckCode&#34;)<br/><br/>Sub CDGen_Reset()<br/>&#160;&#160;&#160;&#160;&#39; 复位矢量笔和环境变量<br/>&#160;&#160;&#160;&#160;LineCount = 0<br/>&#160;&#160;&#160;&#160;CursorX = 0<br/>&#160;&#160;&#160;&#160;CursorY = 0<br/>&#160;&#160;&#160;&#160;&#39; 初始的光笔方向是垂直向下<br/>&#160;&#160;&#160;&#160;DirX = 0<br/>&#160;&#160;&#160;&#160;DirY = 1<br/>End Sub<br/><br/>Sub CDGen_Clear()<br/>&#160;&#160;&#160;&#160;&#39; 清空位图阵列<br/>&#160;&#160;&#160;&#160;Dim i, j<br/>&#160;&#160;&#160;&#160;ReDim Buf(nPixelHeight - 1, nCharCount * nPixelWidth - 1)<br/><br/>&#160;&#160;&#160;&#160;For j = 0 To nPixelHeight - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For i = 0 To nCharCount * nPixelWidth - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Buf(j, i) = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/><br/>Sub CDGen_PSet(X, Y)<br/>&#160;&#160;&#160;&#160;&#39; 在位图阵列上画点<br/>&#160;&#160;&#160;&#160;Buf(Y, X) = 1<br/>End Sub<br/><br/>Sub CDGen_Line(X1, Y1, X2, Y2)<br/>&#160;&#160;&#160;&#160;&#39; 在位图阵列上画线<br/>&#160;&#160;&#160;&#160;Dim DX, DY, DeltaT, i<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;DX = X2 - X1<br/>&#160;&#160;&#160;&#160;DY = Y2 - Y1<br/>&#160;&#160;&#160;&#160;If Abs(DX) &gt; Abs(DY) Then DeltaT = Abs(DX) Else DeltaT = Abs(DY)<br/>&#160;&#160;&#160;&#160;For i = 0 To DeltaT<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_PSet X1 + DX * i / DeltaT, Y1 + DY * i / DeltaT<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/><br/>Sub CDGen_FowardDraw(nLength)<br/>&#160;&#160;&#160;&#160;&#39; 按当前光笔方向绘制指定长度并移动光笔，正数表示从左向右/从上向下绘制，负数表示从右向左/从下向上绘制<br/>&#160;&#160;&#160;&#160;nLength = Sgn(nLength) * Abs(nLength) * (1 - nLengthRandom / 100 + Rnd * nLenghtRandom * 2 / 100)<br/>&#160;&#160;&#160;&#160;ReDim Preserve Lines(3, LineCount)<br/>&#160;&#160;&#160;&#160;Lines(0, LineCount) = CursorX<br/>&#160;&#160;&#160;&#160;Lines(1, LineCount) = CursorY<br/>&#160;&#160;&#160;&#160;CursorX = CursorX + DirX * nLength<br/>&#160;&#160;&#160;&#160;CursorY = CursorY + DirY * nLength<br/>&#160;&#160;&#160;&#160;Lines(2, LineCount) = CursorX<br/>&#160;&#160;&#160;&#160;Lines(3, LineCount) = CursorY<br/>&#160;&#160;&#160;&#160;LineCount = LineCount + 1<br/>End Sub<br/><br/>Sub CDGen_SetDirection(nAngle)<br/>&#160;&#160;&#160;&#160;&#39; 按指定角度设定画笔方向, 正数表示相对当前方向顺时针改变方向，负数表示相对当前方向逆时针改变方向<br/>&#160;&#160;&#160;&#160;Dim DX, DY<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;nAngle = Sgn(nAngle) * (Abs(nAngle) - nAngleRandom + Rnd * nAngleRandom * 2) / 180 * 3.1415926<br/>&#160;&#160;&#160;&#160;DX = DirX<br/>&#160;&#160;&#160;&#160;DY = DirY<br/>&#160;&#160;&#160;&#160;DirX = DX * Cos(nAngle) - DY * Sin(nAngle)<br/>&#160;&#160;&#160;&#160;DirY = DX * Sin(nAngle) + DY * Cos(nAngle)<br/>End Sub<br/><br/>Sub CDGen_MoveToMiddle(nActionIndex, nPercent)<br/>&#160;&#160;&#160;&#160;&#39; 将画笔光标移动到指定动作的中间点上，nPercent为中间位置的百分比<br/>&#160;&#160;&#160;&#160;Dim DeltaX, DeltaY<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;DeltaX = Lines(2, nActionIndex) - Lines(0, nActionIndex)<br/>&#160;&#160;&#160;&#160;DeltaY = Lines(3, nActionIndex) - Lines(1, nActionIndex)<br/>&#160;&#160;&#160;&#160;CursorX = Lines(0, nActionIndex) + Sgn(DeltaX) * Abs(DeltaX) * nPercent / 100<br/>&#160;&#160;&#160;&#160;CursorY = Lines(1, nActionIndex) + Sgn(DeltaY) * Abs(DeltaY) * nPercent / 100<br/>End Sub<br/><br/>Sub CDGen_MoveCursor(nActionIndex)<br/>&#160;&#160;&#160;&#160;&#39; 将画笔光标移动到指定动作的起始点上<br/>&#160;&#160;&#160;&#160;CursorX = Lines(0, nActionIndex)<br/>&#160;&#160;&#160;&#160;CursorY = Lines(1, nActionIndex)<br/>End Sub<br/><br/>Sub CDGen_Close(nActionIndex)<br/>&#160;&#160;&#160;&#160;&#39; 将当前光笔位置与指定动作的起始点闭合并移动光笔<br/>&#160;&#160;&#160;&#160;ReDim Preserve Lines(3, LineCount)<br/>&#160;&#160;&#160;&#160;Lines(0, LineCount) = CursorX<br/>&#160;&#160;&#160;&#160;Lines(1, LineCount) = CursorY<br/>&#160;&#160;&#160;&#160;CursorX = Lines(0, nActionIndex)<br/>&#160;&#160;&#160;&#160;CursorY = Lines(1, nActionIndex)<br/>&#160;&#160;&#160;&#160;Lines(2, LineCount) = CursorX<br/>&#160;&#160;&#160;&#160;Lines(3, LineCount) = CursorY<br/>&#160;&#160;&#160;&#160;LineCount = LineCount + 1<br/>End Sub<br/><br/>Sub CDGen_CloseToMiddle(nActionIndex, nPercent)<br/>&#160;&#160;&#160;&#160;&#39; 将当前光笔位置与指定动作的中间点闭合并移动光笔，nPercent为中间位置的百分比<br/>&#160;&#160;&#160;&#160;Dim DeltaX, DeltaY<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;ReDim Preserve Lines(3, LineCount)<br/>&#160;&#160;&#160;&#160;Lines(0, LineCount) = CursorX<br/>&#160;&#160;&#160;&#160;Lines(1, LineCount) = CursorY<br/>&#160;&#160;&#160;&#160;DeltaX = Lines(2, nActionIndex) - Lines(0, nActionIndex)<br/>&#160;&#160;&#160;&#160;DeltaY = Lines(3, nActionIndex) - Lines(1, nActionIndex)<br/>&#160;&#160;&#160;&#160;CursorX = Lines(0, nActionIndex) + Sgn(DeltaX) * Abs(DeltaX) * nPercent / 100<br/>&#160;&#160;&#160;&#160;CursorY = Lines(1, nActionIndex) + Sgn(DeltaY) * Abs(DeltaY) * nPercent / 100<br/>&#160;&#160;&#160;&#160;Lines(2, LineCount) = CursorX<br/>&#160;&#160;&#160;&#160;Lines(3, LineCount) = CursorY<br/>&#160;&#160;&#160;&#160;LineCount = LineCount + 1<br/>End Sub<br/><br/>Sub CDGen_Flush(X0, Y0)<br/>&#160;&#160;&#160;&#160;&#39; 按照当前的画笔动作序列绘制位图点阵<br/>&#160;&#160;&#160;&#160;Dim MaxX, MinX, MaxY, MinY<br/>&#160;&#160;&#160;&#160;Dim DeltaX, DeltaY, StepX, StepY, OffsetX, OffsetY<br/>&#160;&#160;&#160;&#160;Dim i<br/><br/>&#160;&#160;&#160;&#160;MaxX = MinX = MaxY = MinY = 0<br/>&#160;&#160;&#160;&#160;For i = 0 To LineCount - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MaxX &lt; Lines(0, i) Then MaxX = Lines(0, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MaxX &lt; Lines(2, i) Then MaxX = Lines(2, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MinX &gt; Lines(0, i) Then MinX = Lines(0, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MinX &gt; Lines(2, i) Then MinX = Lines(2, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MaxY &lt; Lines(1, i) Then MaxY = Lines(1, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MaxY &lt; Lines(3, i) Then MaxY = Lines(3, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MinY &gt; Lines(1, i) Then MinY = Lines(1, i)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If MinY &gt; Lines(3, i) Then MinY = Lines(3, i)<br/>&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;DeltaX = MaxX - MinX<br/>&#160;&#160;&#160;&#160;DeltaY = MaxY - MinY<br/>&#160;&#160;&#160;&#160;If DeltaX = 0 Then DeltaX = 1<br/>&#160;&#160;&#160;&#160;If DeltaY = 0 Then DeltaY = 1<br/>&#160;&#160;&#160;&#160;MaxX = MinX<br/>&#160;&#160;&#160;&#160;MaxY = MinY<br/>&#160;&#160;&#160;&#160;If DeltaX &gt; DeltaY Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;StepX = (nPixelWidth - 2) / DeltaX<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;StepY = (nPixelHeight - 2) / DeltaX<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;OffsetX = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;OffsetY = (DeltaX - DeltaY) / 2<br/>&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;StepX = (nPixelWidth - 2) / DeltaY<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;StepY = (nPixelHeight - 2) / DeltaY<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;OffsetX = (DeltaY - DeltaX) / 2<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;OffsetY = 0<br/>&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;For i = 0 To LineCount - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Lines(0, i) = Round((Lines(0, i) - MaxX + OffsetX) * StepX, 0)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(0, i) &lt; 0 Then Lines(0, i) = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(0, i) &gt;= nPixelWidth - 2 Then Lines(0, i) = nPixelWidth - 3<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Lines(1, i) = Round((Lines(1, i) - MaxY + OffsetY) * StepY, 0)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(1, i) &lt; 0 Then Lines(1, i) = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(1, i) &gt;= nPixelHeight - 2 Then Lines(1, i) = nPixelHeight - 3<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Lines(2, i) = Round((Lines(2, i) - MinX + OffsetX) * StepX, 0)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(2, i) &lt; 0 Then Lines(2, i) = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(2, i) &gt;= nPixelWidth - 2 Then Lines(2, i) = nPixelWidth - 3<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Lines(3, i) = Round((Lines(3, i) - MinY + OffsetY) * StepY, 0)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(3, i) &lt; 0 Then Lines(3, i) = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Lines(3, i) &gt;= nPixelHeight - 2 Then Lines(3, i) = nPixelHeight - 3<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_Line Lines(0, i) + X0 + 1, Lines(1, i) + Y0 + 1, Lines(2, i) + X0 + 1, Lines(3, i) + Y0 + 1<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/><br/>Sub CDGen_Char(cChar, X0, Y0)<br/>&#160;&#160;&#160;&#160;&#39; 在指定坐标处生成指定字符的位图阵列<br/>&#160;&#160;&#160;&#160;CDGen_Reset<br/>&#160;&#160;&#160;&#160;Sel&#101;ct Case cChar<br/>&#160;&#160;&#160;&#160;Case &#34;0&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_Close 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 封闭当前笔与第0笔(0开始)<br/>&#160;&#160;&#160;&#160;Case &#34;1&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针90度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_MoveToMiddle 0, 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 移动画笔的位置到第0笔(0开始)的50%处<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针90度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -1.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制1.4个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针30度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.4个单位<br/>&#160;&#160;&#160;&#160;Case &#34;2&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针45度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.4个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.6个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.6个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -135&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针135度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.0个单位<br/>&#160;&#160;&#160;&#160;Case &#34;3&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针90度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 135&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针135度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.6个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针80度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;Case &#34;4&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针20度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针110度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.2个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_MoveToMiddle 1, 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 移动画笔的位置到第1笔(0开始)的60%处<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针90度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_MoveCursor 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 移动画笔到第2笔(0开始)的开始处<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制1.5个单位<br/>&#160;&#160;&#160;&#160;Case &#34;5&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针90度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.0个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针90度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针90度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针30度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.4个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.4个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针30度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;Case &#34;6&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_CloseToMiddle 2, 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 将当前画笔位置与第2笔(0开始)的50%处封闭<br/>&#160;&#160;&#160;&#160;Case &#34;7&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 180&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针180度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.3个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针90度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.9个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.3个单位<br/>&#160;&#160;&#160;&#160;Case &#34;8&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针110度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制1.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针110度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.9个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.9个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针70度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.5&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_Close 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 封闭当前笔与第0笔(0开始)<br/>&#160;&#160;&#160;&#160;Case &#34;9&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_CloseToMiddle 2, 50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 将当前画笔位置与第2笔(0开始)的50%处封闭<br/>&#160;&#160;&#160;&#160;&#39; 以下为字母的矢量动作，有兴趣的可以继续<br/>&#160;&#160;&#160;&#160;Case &#34;A&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -(Rnd * 20 + 150)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针150-170度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw Rnd * 0.2 + 1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.1-1.3个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection Rnd * 20 + 140&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针140-160度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw Rnd * 0.2 + 1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.1-1.3个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_MoveToMiddle 0, 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 移动画笔的位置到第1笔(0开始)的30%处<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_CloseToMiddle 1, 70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 将当前画笔位置与第1笔(0开始)的70%处封闭<br/>&#160;&#160;&#160;&#160;Case &#34;B&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -(Rnd * 20 + 50)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 逆时针50-70度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw Rnd * 0.4 + 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8-1.2个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection Rnd * 20 + 110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针110-130度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw Rnd * 0.2 + 0.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.6-0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -(Rnd * 20 + 110)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针110-130度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw Rnd * 0.2 + 0.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.6-0.8个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection Rnd * 20 + 110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 顺时针110-130度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw Rnd * 0.4 + 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.8-1.2个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_Close 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 封闭当前笔与第1笔(0开始)<br/>&#160;&#160;&#160;&#160;Case &#34;C&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度(相对于垂直线)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection -60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 逆时针60度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制1.5个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw -0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39; 反方向绘制0.7个单位<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_SetDirection 120&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 顺时针120度<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_FowardDraw 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 绘制0.7个单位<br/>&#160;&#160;&#160;&#160;End Sel&#101;ct<br/>&#160;&#160;&#160;&#160;CDGen_Flush X0, Y0<br/>End Sub<br/><br/>Sub CDGen_Blur()<br/>&#160;&#160;&#160;&#160;&#39; 对产生的位图进行柔化处理<br/>&#160;&#160;&#160;&#160;Dim i, j<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;For j = 1 To nPixelHeight - 2<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For i = 1 To nCharCount * nPixelWidth - 2<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Buf(j, i) = 0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If ((Buf(j, i - 1) o&#114; Buf(j + 1, i)) And 1) &lt;&gt; 0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#39; 如果当前点是空白点，且上下左右四个点中有一个点是有色点，则该点做柔化处理<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Buf(j, i) = 2<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/><br/>Sub CDGen_NoisyDot()<br/>&#160;&#160;&#160;&#160;&#39; 对产生的位图进行噪点处理<br/>&#160;&#160;&#160;&#160;Dim i, j, NoisyDot, CurDot<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;For j = 0 To nPixelHeight - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For i = 0 To nCharCount * nPixelWidth - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Buf(j, i) &lt;&gt; 0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;NoisyDot = Int(Rnd * Rnd * nMaxSaturation)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Sel&#101;ct Case nColorNoisyDotOdds<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurDot = nMaxSaturation<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurDot = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurDot = NoisyDot<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End Sel&#101;ct<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Rnd &lt; nColorNoisyDotOdds Then Buf(j, i) = CurDot Else Buf(j, i) = nMaxSaturation<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;NoisyDot = Int(Rnd * nMaxSaturation)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Sel&#101;ct Case nBlankNoisyDotOdds<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurDot = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurDot = nMaxSaturation<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurDot = NoisyDot<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End Sel&#101;ct<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If Rnd &lt; nBlankNoisyDotOdds Then Buf(j, i) = CurDot Else Buf(j, i) = 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/><br/>Sub CDGen()<br/>&#160;&#160;&#160;&#160;&#39; 生成位图阵列<br/>&#160;&#160;&#160;&#160;Dim i, Ch<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;DigtalStr = &#34;&#34;<br/>&#160;&#160;&#160;&#160;CDGen_Clear<br/>&#160;&#160;&#160;&#160;For i = 0 To nCharCount - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Ch = Mid(cCharSet, Int(Rnd * Len(cCharSet)) + 1, 1)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DigtalStr = DigtalStr + Ch<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CDGen_Char Ch, i * nPixelWidth, 0<br/>&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;CDGen_Blur<br/>&#160;&#160;&#160;&#160;CDGen_NoisyDot<br/>End Sub<br/><br/>Function HSBToRGB(vH, vS, vB)<br/>&#160;&#160;&#160;&#160;&#39; 将颜色值由HSB转换为RGB<br/>&#160;&#160;&#160;&#160;Dim aRGB(3), RGB1st, RGB2nd, RGB3rd<br/>&#160;&#160;&#160;&#160;Dim nH, nS, nB<br/>&#160;&#160;&#160;&#160;Dim lH, nF, nP, nQ, nT<br/><br/>&#160;&#160;&#160;&#160;vH = (vH Mod 360)<br/>&#160;&#160;&#160;&#160;If vS &gt; 100 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vS = 100<br/>&#160;&#160;&#160;&#160;ElseIf vS &lt; 0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vS = 0<br/>&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;If vB &gt; 100 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vB = 100<br/>&#160;&#160;&#160;&#160;ElseIf vB &lt; 0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;vB = 0<br/>&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;If vS &gt; 0 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nH = vH / 60<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nS = vS / 100<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nB = vB / 100<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;lH = Int(nH)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nF = nH - lH<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nP = nB * (1 - nS)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nQ = nB * (1 - nS * nF)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;nT = nB * (1 - nS * (1 - nF))<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Sel&#101;ct Case lH<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 0<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = nB * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = nT * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = nP * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = nQ * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = nB * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = nP * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 2<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = nP * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = nB * 255&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = nT * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 3<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = nP * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = nQ * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = nB * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 4<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = nT * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = nP * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = nB * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Case 5<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = nB * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = nP * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = nQ * 255<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End Sel&#101;ct&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(0) = (vB * 246) / 100<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(1) = aRGB(0)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;aRGB(2) = aRGB(0)<br/>&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;HSBToRGB = ChrB(Round(aRGB(2), 0)) &amp; ChrB(Round(aRGB(1), 0)) &amp; ChrB(Round(aRGB(0), 0))<br/>End Function<br/><br/>Sub CreatValidCode(pSN)<br/>&#160;&#160;&#160;&#160;Dim i, j, CurColorHue<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#39; 禁止缓存<br/>&#160;&#160;&#160;&#160;Response.Expires = -9999<br/>&#160;&#160;&#160;&#160;Response.AddHeader &#34;pragma&#34;, &#34;no-cache&#34;<br/>&#160;&#160;&#160;&#160;Response.AddHeader &#34;cache-ctrol&#34;, &#34;no-cache&#34;<br/>&#160;&#160;&#160;&#160;Response.ContentType = &#34;image/bmp&#34;<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;Call CDGen<br/>&#160;&#160;&#160;&#160;Session(pSN) = DigtalStr&#160;&#160;&#160;&#160;&#39;记录入Session<br/><br/>&#160;&#160;&#160;&#160;Dim PicWidth, PicHeight, FileSize, PicDataSize<br/>&#160;&#160;&#160;&#160;PicWidth = nCharCount * nPixelWidth<br/>&#160;&#160;&#160;&#160;PicHeight = nPixelHeight<br/>&#160;&#160;&#160;&#160;PicDataSize = PicWidth * PicHeight * 3<br/>&#160;&#160;&#160;&#160;FileSize = PicDataSize + 54<br/><br/>&#160;&#160;&#160;&#160;&#39; 输出BMP文件信息头<br/>&#160;&#160;&#160;&#160;Response.BinaryWrite ChrB(66) &amp; ChrB(77) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(FileSize Mod 256) &amp; ChrB((FileSize \ 256) Mod 256) &amp; ChrB((FileSize \ 256 \ 256) Mod 256) &amp; ChrB(FileSize \ 256 \ 256 \ 256) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(54) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0)<br/><br/>&#160;&#160;&#160;&#160;&#39; 输出BMP位图信息头<br/>&#160;&#160;&#160;&#160;Response.BinaryWrite ChrB(40) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(PicWidth Mod 256) &amp; ChrB((PicWidth \ 256) Mod 256) &amp; ChrB((PicWidth \ 256 \ 256) Mod 256) &amp; ChrB(PicWidth \ 256 \ 256 \ 256) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(PicHeight Mod 256) &amp; ChrB((PicHeight \ 256) Mod 256) &amp; ChrB((PicHeight \ 256 \ 256) Mod 256) &amp; ChrB(PicHeight \ 256 \ 256 \ 256) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(1) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(24) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(PicDataSize Mod 256) &amp; ChrB((PicDataSize \ 256) Mod 256) &amp; ChrB((PicDataSize \ 256 \ 256) Mod 256) &amp; ChrB(PicDataSize \ 256 \ 256 \ 256) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(18) &amp; ChrB(11) &amp; ChrB(0) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(18) &amp; ChrB(11) &amp; ChrB(0) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; _<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ChrB(0) &amp; ChrB(0) &amp; ChrB(0) &amp; ChrB(0)<br/><br/>&#160;&#160;&#160;&#160;&#39; 逐点输出位图阵列<br/>&#160;&#160;&#160;&#160;If nColorHue = -1 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurColorHue = Int(Rnd * 360)<br/>&#160;&#160;&#160;&#160;ElseIf nColorHue = -2 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurColorHue = 0<br/>&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CurColorHue = nColorHue<br/>&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;For j = 0 To nPixelHeight - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For i = 0 To Len(DigtalStr) * nPixelWidth - 1<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If nColorHue = -2 Then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.BinaryWrite HSBToRGB(CurColorHue, 0, 100 - Buf(nPixelHeight - 1 - j, i))<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Response.BinaryWrite HSBToRGB(CurColorHue, Buf(nPixelHeight - 1 - j, i), 100)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;End If<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next<br/>&#160;&#160;&#160;&#160;Next<br/>End Sub<br/>%&gt;<br/><br/><br/></div></div><br/><br/>将代码保存为.asp文件<br/>获取方式&nbsp;&nbsp;&lt;img src=&#34;checkcode.asp&#34; onClick=&#34;this.src=&#39;checkcode.asp?nowtime=&#39;+ new Date().getTime()&#34; style=&#34;cursor:pointer;&#34;&gt;<br/><br/>获取session为Session(&#34;CheckCode&#34;),修改session的名称在第20行]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=284</link>
			<title><![CDATA[网页输出N行N列表格的ASP实现方法]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Wed,14 Apr 2010 23:21:16 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=284</guid>
		<description><![CDATA[几乎在每个站点中我们都要使用程序来输出列表：新闻列表、产品列表等等，输出的方式也因内容的不同而不同，对于新闻列表，通常是一行一行的循环输出；对于产品列表，通常得一个单元格一个单元格的输出。下边我们就用ASP来输出一个五行四列的表格。<br/><br/><br/><br/>1.一行一行的输出<br/><br/><br/><br/>以下为引用的内容：<br/>&lt;%<br/>Response.Write(&#34;&lt;table border=&#34;&#34;1&#34;&#34; width=&#34;&#34;200&#34;&#34;&gt;&#34;)<br/>For i=1 to 5<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&#34;)<br/>Next<br/>Response.Write(&#34;&lt;/table&gt;&#34;)<br/>%&gt; <br/><br/><br/><br/><br/>这没什么好说的了，大家都看得明白。<br/><br/><br/><br/>2.一个单元格一个单元格的输出<br/><br/><br/><br/>以下为引用的内容：<br/>&lt;%<br/>Response.Write(&#34;&lt;table border=&#34;&#34;1&#34;&#34; width=&#34;&#34;200&#34;&#34;&gt;&#34;)<br/>For i=1 to 18<br/>&nbsp;&nbsp;&nbsp;&nbsp;If i mod 4 = 1 Then Response.Write(&#34;&lt;tr&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;&lt;td&gt; &lt;/td&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If i mod 4 = 0 Then Response.Write(&#34;&lt;/tr&gt;&#34;)<br/>Next<br/>&#39;补足单元格<br/>i = i - 1<br/>If i mod 4&lt;&gt;0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;For j=1 to 4-i mod 4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;&lt;td&gt;补&lt;/td&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;&lt;/tr&gt;&#34;)<br/>End If<br/>Response.Write(&#34;&lt;/table&gt;&#34;)<br/>%&gt; <br/><br/><br/><br/><br/>这边需要说明一下：网上很多的输出N行N列表格的ASP中都没有考虑最后一行的列数是否完整，即没有上边的补足部分，结果输出一个残缺的表格。细节上的问题，毛病虽不大，但还是希望大家注意下<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=279</link>
			<title><![CDATA[asp禁止某IP或者某IP段访问网站]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Tue,06 Apr 2010 11:53:24 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=279</guid>
		<description><![CDATA[程序代码如下：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.icediary.net/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;% <br/>Const IPGroup = &#34;192.168.0.1|192.168.1.1|192.168.1.*&#34;<br/><br/>If IsForbidIP(IPGroup) = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(GetIP &amp;&#34;&nbsp;&nbsp;&nbsp;&nbsp; 系统禁止您的 IP 访问&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.End()<br/>End If<br/><br/><br/>&#39;****************************************************************<br/>&#39;以上代码设置为:如果是192.168.0.1和192.168.1.1和192.168.1.段的IP禁止访问<br/>&#39;参数vBadIP：要屏蔽的IP段,IP地址集合，用|符号分隔多个IP地址(段)<br/>&#39;返回Bool：True用户IP在被屏蔽范围，False则为允许.<br/>&#39;使用的方法为include文件或者放入公用文件就可以使用...<br/>&#39;****************************************************************<br/>Function IsForbidIP(vBadIP)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim counter, arrIPPart, arrBadIP, arrBadIPPart, i, j<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; arrBadIP = Split(vBadIP, &#34;|&#34;)&nbsp;&nbsp; <br/>&nbsp;&nbsp; arrIPPart = Split(GetIP(), &#34;.&#34;)<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To UBound(arrBadIP)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrBadIPPart = Split(arrBadIP(i), &#34;.&#34;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For j = 0 To UBound(arrIPPart)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If(arrBadIPPart(j)) = &#34;*&#34; o&#114; Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter = counter + 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If counter = 4 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsForbidIP = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;IsForbidIP = False<br/>End Function<br/><br/>&#39;***************<br/>&#39;返回客户IP地址<br/>&#39;***************<br/>Function GetIP()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim IP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;IP=&#34;192.168.1.100&#34; &#39;测试IP<br/>&nbsp;&nbsp;&nbsp;&nbsp;IP = Request.ServerVariables(&#34;HTTP_X_FORWARDED_FOR&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If IP = &#34;&#34; Then IP = Request.ServerVariables(&#34;REMOTE_ADDR&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;GetIP = IP<br/>End Function<br/>%&gt;<br/></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=275</link>
			<title><![CDATA[sql语句中left join/right join/inner join详解]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Wed,24 Mar 2010 11:27:27 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=275</guid>
		<description><![CDATA[例子说明<br/>表A记录如下：<br/>aID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNum<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a20050111<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a20050112<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a20050113<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a20050114<br/>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a20050115<br/><br/>表B记录如下:<br/>bID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bName<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032401<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032402<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032403<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032404<br/>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032408<br/><br/><br/>实验如下:<br/>1.left join<br/><br/>sql语句如下: <br/>sel&#101;ct * from A<br/>left join B <br/>on A.aID = B.bID<br/><br/>结果如下:<br/>aID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bName<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032401<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032402<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050113&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032403<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032404<br/>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050115&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL<br/>（所影响的行数为 5 行）<br/><br/>结果说明:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.<br/>换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).<br/>B表记录不足的地方均为NULL.<br/><br/>2.right join<br/><br/>sql语句如下: <br/>sel&#101;ct * from A<br/>right join B <br/>on A.aID = B.bID<br/><br/>结果如下:<br/>aID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bName<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032401<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032402<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050113&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032403<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032404<br/>NULL&nbsp;&nbsp;&nbsp;&nbsp;NULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032408<br/>（所影响的行数为 5 行）<br/><br/>结果说明:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.<br/><br/>3.inner join/Join<br/><br/>sql语句如下: <br/>sel&#101;ct * from A<br/>inner join B <br/>on A.aID = B.bID<br/>或<br/>sel&#101;ct * from A<br/>join B <br/>on A.aID = B.bID<br/>或<br/>sel&#101;ct * from A<br/>, B <br/>wh&#101;re A.aID = B.bID<br/>结果如下:<br/>aID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aNum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bName<br/>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006032401<br/>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050112&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032402<br/>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050113&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032403<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a20050114&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2006032404<br/><br/>结果说明:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;很明显,这里只显示出了 A.aID = B.bID的记录.这说明A inner join B和A Join B和A,B并不以谁为基础,它只显示符合条件的记录.这三种情况的结果是一样的]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=271</link>
			<title><![CDATA[access防下载 nodown表]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Tue,09 Mar 2010 12:06:13 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=271</guid>
		<description><![CDATA[一般网站的核心就是数据库，ASP则大多采用mdb数据库，方便网站移植，减少成功。如果其被Down了，那么这个网站也就岌岌可危了！对于数据库的防下载处理，通常都是将其格式由“MDB”改为“ASP”或“ASA”等一些扩展名，并在其中加入一个防下载字段，这个字段是如何加入的呢？ <br/>　　首先用Access打开MDB数据库，切换“对象”中的“表”为“查询”，然后双击“在设计视图中创建查询”，在弹出的“显示表”窗口中，不添加任何表，直接点“关闭”，这样“工具栏”中就多了一个“SQL”按钮，点击这个按钮或在“查询”窗口中点右键，选择其中的“SQL视图”，就会打开一个查询窗口，如图1，其实这个窗口就是Access的SQL命令输入窗口（刺猬提示：在MSSQL数据库中，有“查询分析器”可以调试SQL语句。而在ACCESS 数据库内，就可以采用这种方法来调试SQL语句了）。<br/>接下来就可以创建防下载字段了，分两步进行：<br/><br/>　　第一步：先创建一个表，在SQL命令窗口内输入如下内容：“Cr&#101;ate Table [nodown]([notdown] oleobject)”<br/>然后点击工具栏中的“!”（运行），这样，就会在当前数据库内创建一个“nodown”表，其中的字段名称为“notdown”，字段类型为“OLE对象”。<br/><br/>　　第二步：将SQL查询窗口中的内容更改为如下命令：“Ins&#101;rt into [nodown](notdown) values(0x3C25)”<br/>这一句的意思是向“nodown”表的“notdown”字段中插入“0x3C25”数据（“0x3C25”为字符“&lt;%”的16进制）。<br/><br/>　　执行完毕后，再次查看数据库中的“表”，就会发现其中已多了一个“nodown”表，打开之后字段显示的是“长二进制数据”，瞧！是不是和某些专业ASP程序中的防下载字段模样一致！<br/>&nbsp;&nbsp; 最后，更改数据库扩展名“MDB”为“ASP”，在本地的IIS中测试，返回的信息如下：<br/><br/>错误类型：<br/>Active Server Pages, ASP 0116 (0x80004005)<br/>Script 块缺少脚本关闭标记(% &gt;)。<br/><br/>　　因为前面插入的是“&lt;%”，所以当数据库变成ASP格式后，就会出现“缺少脚本关闭标记”的错误，在这里，出现错误却是好事哟！因为它说明前面设置的防下载是成功滴！<br/>引自：<a href="http://hi.baidu.com/55661267/blog/item/df500e2f130fae3c1f308958.html" target="_blank" rel="external">http://hi.baidu.com/55661267/blog/item/df500e2f130fae3c1f308958.html</a><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=270</link>
			<title><![CDATA[asp动态include文件]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Mon,08 Mar 2010 14:06:10 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=270</guid>
		<description><![CDATA[以下为代码部分:<br/>&lt;! #include file=&#34;filename.asp&#34; --&gt;<br/><br/>宏限制,必须存在该文件并且会预先编译（不管前面是否加以条件） <br/><br/>经常有这样的要求，根据不同的需求要求include不同的文件,如各个人的不同设置，所以要求能动态include文件。 <br/><br/>代码如下： <br/><br/>以下为代码部分:<br/>Function include(filename)<br/>Dim re,content,fso,f,aspStart,aspEnd<br/><br/>set fso=Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>set f=fso.OpenTextFile(server.mappath(filename))<br/>content=f.ReadAll<br/>f.close<br/>set f=nothing<br/>set fso=nothing<br/><br/>set re=new RegExp<br/>re.pattern=&#34;^\s*=&#34;<br/>aspEnd=1<br/>aspStart=inStr(aspEnd,content,&#34;&lt;%&#34;)+2<br/>do while aspStart&gt;aspEnd+1 <br/>Response.write Mid(content,aspEnd,aspStart-aspEnd-2)<br/>aspEnd=inStr(aspStart,content,&#34;%\&gt;&#34;)+2<br/>Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),&#34;Response.Write &#34;))<br/>aspStart=inStr(aspEnd,content,&#34;&lt;%&#34;)+2<br/>loop<br/>Response.write Mid(content,aspEnd) <br/>set re=nothing<br/>End Function<br/>使用范例： <br/><br/>include(&#34;youinc.asp&#34;)<br/>引自：<a href="http://hi.baidu.com/xiaoxiaolq/blog/item/48228925e780cd6335a80ff5.html" target="_blank" rel="external">http://hi.baidu.com/xiaoxiaolq/blog/item/48228925e780cd6335a80ff5.html</a>]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=269</link>
			<title><![CDATA[ASP中GetRows的用法详解]]></title>
			<author>470280558@qq.com(WindKer)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Mon,08 Mar 2010 14:00:48 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=269</guid>
		<description><![CDATA[NextRecordset 和 GetRows 大家可能用的很少！<br/>最近使用使用，不错的好东东！<br/>对提高批量查询，查询纪录集不是巨海量的情况很有效果<br/>NextRecordset 和 GetRows 是Recordset的两个属性（属性还是方法我是常溷淆是非#$#$，弄不清四下五除一）<br/><br/>GetRows ---&gt; 将recordset记录集提取到一个二维数组中，我们对recordset数据的行为就转移到该数组，可以早早的断开纪录集，不用再使用元数据操作，rs.movnext, while not rs.eof等可以省掉<br/><br/>NextRecordset ----&gt; 就是在一次提交多个查询，形成多个reordset结果集的情况下，提供一个离开当前工作的recordset，转移到第二个recordset的方法！<br/><br/>主要是用在多个Sel&#101;ct形成的结果集的情况<br/><br/>示例如下：<br/><br/>dim SQL,Rs,arrA,arrB,rowsA,rowsB<br/><br/>&#39;======提取数据库库记录====<br/><br/>（adodb.connection 的连接部分省略,假定CONN.open CONNstr）<br/>SQL=&#34; sel&#101;ct Ca1,Ca2,Ca3,Ca4 from TableA &#34; &#39;---------------Sel&#101;cta<br/>SQL=SQL&amp;&#34; sel&#101;ct Cb1,Cb2,Cb3,Cb4,Cb5 from TableB &#34; &#39;-------------Sel&#101;ctb<br/><br/>Set Rs=conn.execute(SQL) <br/>&#39;执行结果将有两个sel&#101;ct 的结果集，当前第一个sel&#101;ct的recordset处于激活状态<br/><br/>arrA=rs.GetRows &#39;----------取得Sel&#101;cta Recordset的二维数组<br/><br/>set rs=rs.NextRecordset <br/>&#39;------------最关键的一步，使用Nextrecordset激活下一个recordset<br/><br/>arrB=rs.GetRows &#39;----------再次取得第二个Sel&#101;ctb Recordset的二维数组<br/><br/>Rs.close<br/>set rs=nothing &#39;---------尽早释放数据库对象，关闭记录集<br/>CONN.close<br/>set CONN=Nothing<br/>这样，我们所有关于数据库的数据干干净净的提取完成，用最早的时间释放数据库资源 <br/>&#39;-----------//<br/><br/>&#39;========用取得的arrA arrB进行页面处理,显示数据结果======<br/>&#39;注意，arrA=GetRows 后得到的数组，第一维是代表列，第二维代表行<br/><br/>rowsA=ubound(arrA,2) &#39;----提取arrA的第二维下标，相当于取得recordset 的记录行数<br/>rowsB=ubound(arrB,2) &#39;-----同上，提取arrB的第二维下标<br/><br/>&#39;做数据循环：<br/><br/>&#39;第一个sel&#101;ct表的循环<br/><br/>ADO也提供更有效率方法来取得资料。GetRows 方法传回一个二维的阵列变数，每一行对应Recordset中的一笔记录，且每一列对应到记录中的栏位。此方法的语法如下：<br/><br/>varArray = rs.GetRows([Rows], [Start], [Fields])<br/><br/>Rows 是要读取记录的数量；如果想要取得Recordset所有记录，可用-1或省略此参数。Start 是指出第一个被读取记录的书籤；也可以是下列列举常数中的一个：0-adBookmarkCurrent（目前记录）、1-adBookmarkFirst（第一笔记录）、或2-adBookmarkLast（最后记录）。<br/><br/>Fields 是可选择的栏位名称阵列，其用来限制要读取的资料量。（也可指定单一栏位名称、单一栏位索引、或者一个栏位索引阵列）。当设定 Rows 为少于Recordset记录笔数时，第一笔未读取的记录变成现行记录。若省略 Rows 参数或设定为-1-adGetRowsRest或大于未读取的笔数时，GetRows 方法会读取所有记录并让Recordset在EOF状态，而不会产生任何错误。<br/><br/>当处理目的变数阵列的资料时，应该记得资料储存方式是有点相反的感觉：阵列中第一维定义Recordset的栏位（资料行），第二维定义Recordset的资料列。以下有个载入Recordset内所有记录某三个栏位的范例：<br/><br/>Dim values As Variant, fldIndex As Integer, recIndex As Integer<br/>values = rs.GetRows(, , Array(&#34;LastName&#34;, &#34;FirstName&#34;, &#34;BirthDate&#34;))<br/>For recIndex = 0 To UBound(values, 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;For fldIndex = 0 To UBound(values)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print values(fldIndex, recIndex),<br/>&nbsp;&nbsp;&nbsp;&nbsp;Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Print<br/>Next<br/><br/>GetRows 方法通常比一次读一笔记录的迴圈要来得快些，但使用这方法时，必须确定Recordset未包含太多记录；否则，会很容易以一个非常大的变数阵列来填满所有记忆体。基于相同的原因，得小心不要包括任何BLOB（Binary Large Object）或CLOB（Character Large Object）栏位；若如此做的化，应用程式一定会爆掉，特别是对于较大的Recordset而言。最后，记住此方法传回的变数阵列是以0为基底的；传回记录的笔数是UBound(values,2)+1，传回栏位数是UBound(value, 1)+1。<br/><br/>GetString 方法跟 GetRows 是类似的，不过其传回以单一字串形式存在的多重记录。GetString 语法如下：<br/><br/>GetString([Format], [NumRows], [ColDelimiter], [RowDelimiter], [NullExpr])<br/><br/>Format 是结果的格式。GetString 还可能支援更多格式，但是目前唯一支援的格式是2- adClipString，所以实际上没有任何选择。NumRows 是要取得的列数。（使用-1或省略此参数来读取所有剩下的记录。）ColDelimiter 是行的分隔字元（预设为Tab字元）。RowDelimiter 为记录的分隔字元（预设为换行字元）。NullExpr 是用来表示Null栏位的字串（预设为空字串）。文件中说明只有当Format= adClipString时，最后三个参数才可使用，但是这警告没有多大意义，因为（如之前所提）此格式是目前唯一支援的。以下有个例子，其透过 GetString 方法来将资料汇出成以分号分隔的文字档：<br/><br/>Dim i As Long<br/>Open &#34;datafile.txt&#34; For Output As #1<br/>For i = 0 To rs.Fields.Count _ 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Export field names.<br/>&nbsp;&nbsp;&nbsp;&nbsp;If i &gt; 0 Then Print #1, &#34;;&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Print #1, rs.Fields(i).Name;<br/>Next<br/>Print #1, &#34;&#34;<br/>rs.MoveFirst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; Export data.<br/>Print #1, rs.GetString(, , &#34;;&#34;, VBCrLf); &#39; Don&#39;t add an extra CR-LF here.<br/>Close #1<br/><br/>GetString 方法不允许只汇出栏位的子集合，也不允许修改汇出栏位的顺序。如果需要这些额外的功能，应该使用 GetRows 方法且自行建立结果字串。<br/><br/>大家应该都知道 Recordset 有个 GetRows 属性，但是真正使用的不多，我也是最近才用的！汗……<br/><br/>其实这个属性很简单，就是把数据集输出到一个数组中。但是实用性可不小，在这里我举一个例子说明一下GetRows的使用方法，大家举一反三能想到更多的用法！<br/><br/>比如一个分类的表 T_Cate，结构和数据如下：<br/><br/>ID&nbsp;&nbsp; |&nbsp;&nbsp; Title&nbsp;&nbsp; | Intro<br/>-----------------------------------------<br/>1&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; 新闻&nbsp;&nbsp; | 这里是新闻<br/>2&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; 教程&nbsp;&nbsp; | 这里是教程<br/>3&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp; 下载&nbsp;&nbsp; | 这里是下载<br/><br/>好了，表建立好了，数据也有了，下面我们就要用到GetRows咯！<br/><br/>程序代码：<br/><br/>Dim Rs_Cate<br/>Dim Arr_Cate<br/>Set Rs_Cate=Conn.ExeCute(&#34;Sel&#101;ct ID,Title,Intro FROM T_Cate o&#114;DER BY ID ASC&#34;)<br/>Arr_Cate=Rs_Cate.GetRows<br/>Set Rs_Cate=Nothing<br/><br/>好了表数据已经导出到数组了！下面我们将遍历这个数组<br/><br/>程序代码：<br/><br/>Dim Arr_CateNumS,Arr_CateNumI<br/>Arr_CateNumS=Ubound(Arr_Cate,2) &#39;得到数组中数据的下标<br/>For Arr_CateNumI=0 To Arr_CateNumS<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(&#34;ID：&#34;&amp;Arr_Cate(0,Arr_CateNumI)&amp;&#34; | 标题：&#34;&amp;Arr_Cate(1,Arr_CateNumI)&amp;&#34; | 介绍：&#34;&amp;Arr_Cate(2,Arr_CateNumI)&amp;&#34;&lt;br&gt;&#34;)<br/>Next<br/><br/>呵呵，好了，输出的数据为：<br/>ID：1 | 标题：新闻 | 介绍：这里是新闻<br/>ID：2 | 标题：教程 | 介绍：这里是教程<br/>ID：3 | 标题：下载 | 介绍：这里是下载<br/><br/>引自：<a href="http://hi.baidu.com/%B2%E8%B2%A9%CA%BF/blog/item/6cd12922bf99c0ac4723e8c0.html" target="_blank" rel="external">http://hi.baidu.com/%B2%E8%B2%A9%CA%BF/blog/item/6cd12922bf99c0ac4723e8c0.html</a>]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=258</link>
			<title><![CDATA[发一个圣诞祝福页面的代码]]></title>
			<author>470280558@qq.com(AnyTrey)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Thu,17 Dec 2009 12:58:57 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=258</guid>
		<description><![CDATA[在网上看了这个不错的圣诞祝福界面<br/><br/>于是弄下了下来，删除没有用的东西<br/><br/>希望大家能喜欢，呵呵！！<br/><br/>界面预览：<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><img src="http://www.icediary.net/attachments/month_0912/q20091217125742.png" border="0" alt=""/><br/><br/>下载：<br/><br/><br/><img src="http://www.icediary.net/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.icediary.net/attachments/month_0912/y20091217125844.rar" target="_blank">点击下载此文件</a><br/><br/>页面源自网络，仅共享之用，如有侵犯您的权利请联系我，我将在24小时内删除！<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=257</link>
			<title><![CDATA[AspJpeg组件过期解决方法]]></title>
			<author>470280558@qq.com(AnyTrey)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Tue,15 Dec 2009 23:14:33 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=257</guid>
		<description><![CDATA[网站还了服务器突然发现图片的水印失效，于是搜索了下，用比较简单的代码测试了下，现在原来是水印组件过期了,用生成文字水印测试了下，出现了如下提示错误：<br/>AspJpeg has expired. Please visit www.aspjpeg.com to purchase a registration key. <br/><br/>然后查看组件是否到期的方法：<br/>Set Jpeg = Server.Cr&#101;ateObject(&#34;Persits.Jpeg&#34;) <br/>Response.Write Jpeg.Expires<br/><br/>解决方法:<br/><br/>修改注册表：注册表中的HKEY_LOCAL_MACHINE\Software\ Persits Software\AspJpeg，只有一个Expires。在AspJpeg下新建一个项：RegKey&nbsp;&nbsp;然后将数值更改为48958-77556-02411，就可以了<br/><br/>在用查看过期的方法看了下 ，显示为 9999-9-9&nbsp;&nbsp;。。。 成功了！！]]></description>
		</item>
		
			<item>
			<link>http://www.icediary.net/article.asp?id=251</link>
			<title><![CDATA[ASP取汉字首字母]]></title>
			<author>470280558@qq.com(AnyTrey)</author>
			<category><![CDATA[ASP]]></category>
			<pubDate>Sat,28 Nov 2009 10:30:51 +0800</pubDate>
			<guid>http://www.icediary.net/default.asp?id=251</guid>
		<description><![CDATA[&lt;% <br/>function getpychar(char)<br/>dim tmp<br/>tmp=65536+asc(char)<br/><br/>if(tmp&gt;=45217 and tmp&lt;=45252) then<br/>getpychar= &#34;A&#34;<br/>elseif(tmp&gt;=45253 and tmp&lt;=45760) then<br/>getpychar= &#34;B&#34;<br/>elseif(tmp&gt;=45761 and tmp&lt;=46317) then<br/>getpychar= &#34;C&#34;<br/>elseif(tmp&gt;=46318 and tmp&lt;=46825) then<br/>getpychar= &#34;D&#34;<br/>elseif(tmp&gt;=46826 and tmp&lt;=47009) then<br/>getpychar= &#34;E&#34;<br/>elseif(tmp&gt;=47010 and tmp&lt;=47296) then<br/>getpychar= &#34;F&#34;<br/>elseif(tmp&gt;=47297 and tmp&lt;=47613) then<br/>getpychar= &#34;G&#34;<br/>elseif(tmp&gt;=47614 and tmp&lt;=48118) then<br/>getpychar= &#34;H&#34;<br/>elseif(tmp&gt;=48119 and tmp&lt;=49061) then<br/>getpychar= &#34;J&#34;<br/>elseif(tmp&gt;=49062 and tmp&lt;=49323) then<br/>getpychar= &#34;K&#34;<br/>elseif(tmp&gt;=49324 and tmp&lt;=49895) then<br/>getpychar= &#34;L&#34;<br/>elseif(tmp&gt;=49896 and tmp&lt;=50370) then<br/>getpychar= &#34;M&#34;<br/>elseif(tmp&gt;=50371 and tmp&lt;=50613) then<br/>getpychar= &#34;N&#34;<br/>elseif(tmp&gt;=50614 and tmp&lt;=50621) then<br/>getpychar= &#34;O&#34;<br/>elseif(tmp&gt;=50622 and tmp&lt;=50905) then<br/>getpychar= &#34;P&#34;<br/>elseif(tmp&gt;=50906 and tmp&lt;=51386) then<br/>getpychar= &#34;Q&#34;<br/>elseif(tmp&gt;=51387 and tmp&lt;=51445) then<br/>getpychar= &#34;R&#34;<br/>elseif(tmp&gt;=51446 and tmp&lt;=52217) then<br/>getpychar= &#34;S&#34;<br/>elseif(tmp&gt;=52218 and tmp&lt;=52697) then<br/>getpychar= &#34;T&#34;<br/>elseif(tmp&gt;=52698 and tmp&lt;=52979) then<br/>getpychar= &#34;W&#34;<br/>elseif(tmp&gt;=52980 and tmp&lt;=53688) then<br/>getpychar= &#34;X&#34;<br/>elseif(tmp&gt;=53689 and tmp&lt;=54480) then<br/>getpychar= &#34;Y&#34;<br/>elseif(tmp&gt;=54481 and tmp&lt;=62289) then<br/>getpychar= &#34;Z&#34;<br/>else &#39;如果不是中文，则不处理<br/>getpychar=char<br/>end if<br/>end function<br/><br/><br/>function getpy(str)<br/>getpy=getpychar(mid(str,1,1))<br/>end function<br/><br/>response.Write getpy(&#34;理&#34;)<br/>%&gt;]]></description>
		</item>
		
</channel>
</rss>
