六角星咕噜咕噜魔法阵1 动漫的起源怎么诸多动漫片里都有这个咕噜咕噜魔法阵1 动漫

魔法战争人物角色介绍 - 动漫人物网
已创建 0 位人物
>> 《魔法战争》所属动漫人物
所属动漫:
简介:相羽六,《魔法战争》女主角之一,武在学校中遇到的神秘美少女。有兄控倾向,后喜欢主角。
长黑发巨乳少女。个性诚实,而对任何情况都率直。还有尝试自己的方式的鲁莽而固执一面,在恋爱的意识上较薄弱,有兄控倾向。
所属动漫:
简介:七濑武,《魔法战争》男主角,剑道社成员,有段者。性格认真,本性善良,但偶尔亦会因眼前发生的事而变得义愤填膺。为五十岛胡桃的青梅竹马。之前曾因为胡桃的事件而与胡桃建立起虚假的恋人关系。
所属动漫:
简介:五十岛胡桃
声优:濑户麻沙美
社团:剑道部(经理)
魔法粒子:粉红色
魔法阵形态:正方形,四角各有一个圆形
年龄:16岁
生日:5月21日
系统魔法:生物魔法——年龄变化(变形)
班级:高等科一年级C班
本作女主角之一
所属动漫:
简介:伊田一三
声优:铃村健一
魔法粒子:橘色
魔法阵形态:一个大圆形
年龄:16岁
生日:8月8日
系统魔法:破坏魔法——爆炎魔法(爆裂炎雾)
武的同班同学,染金发,穿耳环和戴戒指,被学校认为是问题学生,因而被周围人疏远。
TV剧情:曾在
所属动漫:
简介:四条桃花
声优:高桥美佳子
魔法粒子:暗黑色
系统魔法:暗黑魔法——空间脱离(漆黑之门)
魔法阵形态:一个大圆形,中间有两个太极阴阳图
年龄:12岁(外表看起来)实际27岁。
生日:6月20日
血型:AB型
昴宿魔法学院学院长,外表与
所属动漫:
简介:兵头七海
系统魔法:生物魔法
魔法粒子:海蓝色
魔法阵形态:正方形,四角各有一个圆形
保健医生兼生物魔法教师,相当崇拜学院长。
伟大十五位魔法师的一个人。
“来者是带着时髦的红边眼镜的二十岁多岁的女性。
她穿着白大褂,应该是保健医生吧。
所属动漫:
简介:妃衣奈
声优:市道真央
昴宿魔法学院高等科四年级
卡美洛大祭司所属的魔女
相羽十的前女友
第六卷中首次出现。动漫人物网http://www.Ch↘u↘a↘nX↘in↘Cao.n↘e↘↘t
昴魔法学院遇袭期间,武被月光打伤后将其带到大祭司的
所属动漫:
简介:相羽十
声优:森川智之
魔法粒子:青蓝色
魔法阵形态:一个大圆形,中间有一个六边形
系统魔法:破坏魔法——冰冻魔法(邪恶冰霜)
他原本是《Wizard Bless》中的优秀的第一级魔法使,是破坏魔法中堪与烈火魔法相匹敌的冰结魔法《Evil
所属动漫:
简介:七濑月光
声优:冈本信彦
系统魔法:神速魔法——天使杀手(狩猎天使)
魔法粒子:白色
魔法阵形态:一个大圆形和三个小圆形,中间有一个六角星
武的弟弟,自认长相较武好,剑道才能亦在武之上。对身为兄长的武怀有异常的敌意。由于某日上学的路上与兄长
所属动漫:
简介:狼神鹰雄
声优:福山润
系统魔法:回避魔法——迂回回避(匿踪云雾)
魔法粒子:白色
隶属于第一战斗小队的高级精英。系统魔法为回避魔法。
与武和六交战后败北,被学院洗脑而成为学院的俘虏。后来,在桃花的协议之下,他和萤与十在进行交换人质的过程中
所属动漫:
简介:牛若
声优:增田俊树
系统魔法:生物魔法——虫继承
魔法粒子:深红色
魔法阵型态:一个大圆形
隶属于第一战斗小队的高级精英。动漫人物网http://www.C┠hu┠a┠nXi┠n┠Cao.n┠┠et能力为操纵虫。
因在现存世界使用系统魔
所属动漫:
简介:熊谷萤
声优:藤田咲
系统魔法:幻术魔法——记忆修改
魔法粒子:浅绿色
魔法阵型态:三角形,中间也有一个三角形,三角各有一个圆形
有着中性外表的女性,本欲攻击被当成六与武同伙的伊田一三,却反而被伊田打倒。当她被学院俘虏时,她忘记自己曾经是亡
所属动漫:
简介:鹫津吉平
声优:中井和哉
系统魔法:破坏魔法——固态无形
魔法粒子:深红色
魔法阵型态:一个大圆形,中间有一个六边形
武与十在崩坏世界战斗后出现在武一行人的面前。
亡灵引路人的干部“五格”之一,亦是元老等级的强大魔法使。以前是桃花的学长,
所属动漫:
简介:龙泉寺和马
声优:浪川大辅
系统魔法特异魔法·无间消灭(最后安魂曲)
魔法粒子:咖啡色
魔法阵型态:一个大圆形,中间有两个太极阴阳图
不能容忍与人类共存,Ghost Trailer的头领,建立崩溃世界的机缘人物。曾经也是昂魔法学院的学生。在
所属动漫简介 &
年代:2014年
地区:日本
七濑武是个有着阴暗过去的普通高中生。往好的方面说,是认真;往不好的方面说,是生性阴暗&&这是周围人对他的评价。出于某些原因,武与青梅竹马五十岛胡桃建立起虚假的恋人关系,除此之外,他过着普通的生活。不过某一天,他在学校里发现,身穿从未见过的制服的少女&相羽六倒在地上。与她的邂逅使得武的命运发生巨大转折,然后不断地变化。「其实,我是魔法使。抱歉&&我把你变成了魔法使。」
在这一分为二的世界中,无数思念互相交织!现代&正统魔法动作剧开幕!魔法阵生成器(1)--画一个N角星星 - 王朝网络 -
分享&&&&&当前位置: &&&&&&&&魔法阵生成器(1)--画一个N角星星魔法阵生成器(1)--画一个N角星星 07:23:43&來源:互联网&&&&  转载请注明来自
作者:董含君  计划是做魔法阵生成器的,后来仔细研究,需要大量的解析几何 数据结构 拼凑算法 随机算法 等等相关内容,所以不可能一次性解决问题了.所以发来当前进度描述一下过程以及想法.不一定能坚持写下去,到了后面的规则制定我头都大了.  --------------------------------------------------------------------------  用途:计算2D飞行游戏弹道,比如彩京那样的,放置游戏人物,屏幕保护,媒体播放器的视觉效果.  一个6边形,根据r扩散.取r两次.则有两个顶点列表.根据这两个停电列表可以表示弹道轨迹.然后旋转魔法阵,得到新的顶点列表,重复上述操作,可以得到任意发散的子弹图形   如果对两个子弹的弹道加上初始速度以及加速度,则可以表示变速直线运动,创造更华丽的子弹组合效果.  如果有了随机生成魔法阵算法,理论上游戏人物的初始位置排列都可以生成   虽然可以随机出现,但是如果用魔法阵顶点来做,会更有规律,生成的敌人组合排列更强,更加合理.因为魔法阵的生成都是有规律的,攻击型的图形表示可以放攻击型人物等等   因为牵扯随机算法,就是给出要求(&比如咒语&),然后根据条件生成魔法阵的过程,就是要求根据&指定规则&后的映射  比如你给出一系列条件:攻击型5个,防御性一个,防御为主,同时复杂程度不超过N(魔法阵外层常量)....其他条件等等.然后根据算法,提取出数字,用作权值.生成魔法阵   N的取得是根据权值而定,就是N越大,魔法阵面积越大,外围图形越多(有隐形的辅助线) 而且如果敌人有人死亡,比如攻击的减少了一个,而且还是防御为主..那么再次带入还能生成新的魔法阵 重新排列防守阵型   强烈怀疑,一开始提出魔法阵的人,绝对不是因为好看!!只不过没有人认真研究罢了.这个很像八卦阵的,全都是数学以及数据关系  ---------------------------------------------------------------------------  不废话了...  魔法阵生成系统的第一步 画一个正N角星  这个是基础的基础,正N角星包含正N边形,当N大于一定程度的时候可以近似表示圆,我们需要的顶点列表都可以被线性表描述出来,从而根据下标筛选所需的点.  对于正N角星,基础就是所在外接圆,然后通过极坐标-&平面坐标转化求出顶点  这个就很简单了,高中内容  -------------------极坐标 到 平面坐标的转化--------------  Function Trans(ByVal jizuobiao As CAPI, Optional ByVal StartX As Integer = CStartX, Optional ByVal StartY As Integer = CStartY) As System.Drawing.Point  
Dim P As System.Drawing.Point  
'P(x,y)就是极坐标的 (Sin a)x 半径r 以及cos a x半径r  
P.X = StartX + CLng(Math.Sin(jizuobiao.a) * jizuobiao.r)  
P.Y = StartY + CLng(Math.Cos(jizuobiao.a) * jizuobiao.r)  
Trans = P  
End Function  ----------------------------------------------------------------------  另外微软提供的arraylist似乎没有环形链表,尝试用他的queuq的时候,也不好改动,于是我索性干脆自己写了一个.其中包含以下要素:  -------------------------------  Public Class Node  
'下一个节点  
Public NextNode As Node  
Public Container As RoundQueue  
'上一个节点  
Public PrevNode As Node  
'元素信息,用Object表示  
Public objData As Object  
Public visitFlas As Integer  '插入节点  
Public Function InsertNextByData(ByRef d As Object) As Node  Public Sub deleteNode()  Protected Overrides Sub Finalize()  End Class  Public Class RoundQueue  
'Public EnableBack As Boolean  
'虚拟的头节点  
Public Root As Node  
Public TotalNodes As Long
Public CurrentNode As Node
'当前指针  
Public Sub New()  
Public Sub New(ByRef L As ArrayList)  
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node) As Node  
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node, ByRef DataOfNewNode As Object)  
Public Function MovePrev() As Node  
Public Property GetData() As Object  
Protected Overrides Sub Finalize()  
Public Sub Dispose()  End Class  --------------------------------------------------  有了以上材料作为基础,开始研究算法.  网上找到的大部分都是LOGO语言的,没办法,人家天生适合画这个.  给出函数   DrawAngle(ByVal Num As Long, ByVal Steps As Long, ByRef map As Bitmap, ByVal x As Long, ByVal y As Long, ByVal r As Long, ByVal basea As Single, ByVal penA As Drawing.Pen)  提供角的数量,跨越点数,目标图像,圆心半径起始角度(用于旋转),以及画笔(颜色,粗细)绘制图形  1 所有的大于2的奇数的正N角星都能一笔画出  (也就是我们可以一直用.nextnode来画)  2 除了六角星以外 所有大于3的正N角星都能一笔画出  (一笔画出就是没有跳跃间断点)  3 大于5的正N角星,会有 ((边数-1)/2)上取整种有效画法  不仅仅是一种画法,当边数等于0或者自身的时候无意义,重复的图形无意义  4 间断点位置,(当角的数量/间隔点差(包含自身))=K的余数为0的点就是断点.  5 当断点出现的时候,当前图形就是基本图形,整个图形在此基础上错位 K次就是整个图形  6 基本图形错位K次的结果不会有任何重复线段以及顶点,而且可以遍历整个节点  以下以正8角星为例(3,4,5,6都有特例,所以不好办) 如图(/images/blog_csdn_net/a11s/8.GIF)    ------------------------------------  算法:  1 创建m的元素的数组  2 根据m的个数,取得间隔的角度a  3 根据极坐标转化,得到第一个顶点的位置  4 依次类推取得全部顶点  5 将顶点加入环形链表(严格的说,不算队列)  6 绘制,检测错位  --------------   For i = 1 To RQ.TotalNodes  
If RQ.CurrentNode.visitFlas = 1 And GetNextNNode(RQ.CurrentNode, Steps).visitFlas = 1 Then  
'如果下一个节点的下一个节点已经访问那么  
RQ.MoveNext()  
If i & RQ.TotalNodes - 1 Then i = i - 1  
g.DrawLine(penA, RQ.CurrentNode.objData, MoveNextNNode(RQ.CurrentNode, Steps).objData)  
RQ.CurrentNode.visitFlas = 1  
End If  
Next  -------------  最终效果:    源代码:  Module Module1  
Function DrawAngle(ByVal Num As Long, ByVal Steps As Long, ByRef map As Bitmap, ByVal x As Long, ByVal y As Long, ByVal r As Long, ByVal basea As Single, ByVal penA As Drawing.Pen)  
If map Is Nothing Then  
Exit Function  
End If  
Dim g As System.Drawing.Graphics  
g = g.FromImage(map)  
Dim RQ As RoundQueue = CreatePointQueueA(x, y, r, Num, basea)  
Dim i As Long  
''''''''' Draw  
For i = 1 To RQ.TotalNodes  
If RQ.CurrentNode.visitFlas = 1 And GetNextNNode(RQ.CurrentNode, Steps).visitFlas = 1 Then  
'如果下一个节点的下一个节点已经访问那么  
RQ.MoveNext()  
If i & RQ.TotalNodes - 1 Then i = i - 1  
g.DrawLine(penA, RQ.CurrentNode.objData, MoveNextNNode(RQ.CurrentNode, Steps).objData)  
RQ.CurrentNode.visitFlas = 1  
End If  
End Function  
Sub DrawLine(ByVal fromPoint As Drawing.Point, ByVal toPoint As Drawing.Point)  
End Sub  
Function GetNextNNode(ByVal tarnode As Node, ByVal n As Long) As Node  
For i = 1 To n  
tarnode = tarnode.NextNode  
Return tarnode  
End Function  
Function MoveNextNNode(ByRef tarnode As Node, ByVal n As Long) As Node  
For i = 1 To n  
tarnode = tarnode.NextNode  
Return tarnode  
End Function  End Module  Public Class RoundQueue  
'Public EnableBack As Boolean  
'虚拟的头节点  
Public Root As Node  
Public TotalNodes As Long
Public CurrentNode As Node
'当前指针  
''''''''  
Public Sub New()  
'新的根节点  
Root = New Node  
'全部指向自己  
Root.PrevNode = Root  
Root.NextNode = Root  
'当前节点指向跟节点  
CurrentNode = Root  
Root.Container = Me  
TotalNodes = 1  
End Sub  
Public Sub New(ByRef L As ArrayList)  
Me.New()  
If L.Count & 0 Then Exit Sub  
Root.objData = L.Item(0)  
Dim i As Long  
For i = 1 To L.Count - 1  
Dim cn As Node  
If i = 1 Then  
cn = InsertNode(Root, New Node, L.Item(i))  
cn = InsertNode(CurrentNode, New Node, L.Item(i))  
End If  
cn.objData = cn.objData  
CurrentNode.NextNode = cn  
Root = CurrentNode  
Root = Root.NextNode  
'最后一个节点指向头节点  
'CurrentNode.PrevNode = Root  
'头节点的上一个节点指向最后一个  
'Root.PrevNode = CurrentNode  
'指针移动到开始  
'CurrentNode = Root    
End Sub  
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node) As Node  
'保存旧的数据  
Dim oldnode As Node  
oldnode = tarNode.NextNode  
'连接新的数据  
tarNode.NextNode = newNode  
newNode.PrevNode = tarNode  
newNode.NextNode = oldnode  
'连接旧的数据  
oldnode.PrevNode = newNode  
'返回刚刚插入的Node  
TotalNodes += 1  
newNode.Container = Me  
Return newNode  
End Function  
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node, ByRef DataOfNewNode As Object)  
'保存旧的数据  
Dim oldnode As Node  
oldnode = tarNode.NextNode  
'连接新的数据  
tarNode.NextNode = newNode  
newNode.PrevNode = tarNode  
newNode.NextNode = oldnode  
'连接旧的数据  
oldnode.PrevNode = newNode  
newNode.objData = DataOfNewNode  
newNode.Container = Me  
TotalNodes += 1  
Return newNode  
End Function  
Public Function MoveNext() As Node  
CurrentNode = CurrentNode.NextNode  
End Function  
Public Function MovePrev() As Node  
CurrentNode = CurrentNode.PrevNode  
End Function  
Public Property GetData() As Object  
Return CurrentNode.objData  
End Get  
Set(ByVal Value As Object)  
CurrentNode.objData = Value  
End Set  
End Property  
Protected Overrides Sub Finalize()  
MyBase.Finalize()  
End Sub  
Public Sub Dispose()  
Finalize()  
End Sub  End Class  Public Class Node  
'下一个节点  
Public NextNode As Node  
Public Container As RoundQueue  
'上一个节点  
Public PrevNode As Node  
'元素信息,用Object表示  
Public objData As Object  
Public visitFlas As Integer  
'插入节点  
Public Function InsertNextByData(ByRef d As Object) As Node  
Dim n As New Node
n.objData = d
'add data  
n.PrevNode = Me
'确定前驱  
Me.NextNode = n
'自己确定后继  
Container.TotalNodes += 1  
'返回    
End Function  
Public Sub deleteNode()  
'Dim t As Node  
't = Me.NextNode  
If Container.TotalNodes &= 1 Then  
Me.Finalize()  
Container.Dispose()  
End If  
Me.PrevNode.NextNode = Me.NextNode  
Me.NextNode.PrevNode = Me.PrevNode  
Me.Finalize()    
End Sub  
Protected Overrides Sub Finalize()  
MyBase.Finalize()  
End Sub  End Class    Public Class Form1  
Inherits System.Windows.Forms.Form  #Region & Windows 窗体设计器生成的代码 &  
Public Sub New()  
MyBase.New()  
'该调用是 Windows 窗体设计器所必需的。  
InitializeComponent()  
'在 InitializeComponent() 调用之后添加任何初始化  
End Sub  
'窗体重写 dispose 以清理组件列表。  
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)  
If disposing Then  
If Not (components Is Nothing) Then  
components.Dispose()  
End If  
End If  
MyBase.Dispose(disposing)  
End Sub  
'Windows 窗体设计器所必需的  
Private components ponentModel.IContainer  
'注意: 以下过程是 Windows 窗体设计器所必需的  
'可以使用 Windows 窗体设计器修改此过程。  
'不要使用代码编辑器修改它。  
Friend WithEvents Button1 As System.Windows.Forms.Button  
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox  
Friend WithEvents Button2 As System.Windows.Forms.Button  
&System.Diagnostics.DebuggerStepThrough()& Private Sub InitializeComponent()  
Me.Button1 = New System.Windows.Forms.Button  
Me.ListBox1 = New System.Windows.Forms.ListBox  
Me.Button2 = New System.Windows.Forms.Button  
Me.SuspendLayout()  
'Button1  
Me.Button1.Location = New System.Drawing.Point(360, 96)  
Me.Button1.Name = &Button1&  
Me.Button1.Size = New System.Drawing.Size(120, 48)  
Me.Button1.TabIndex = 0  
Me.Button1.Text = &next&  
'ListBox1  
Me.ListBox1.ItemHeight = 12  
Me.ListBox1.Location = New System.Drawing.Point(16, 8)  
Me.ListBox1.Name = &ListBox1&  
Me.ListBox1.Size = New System.Drawing.Size(200, 316)  
Me.ListBox1.TabIndex = 1  
'Button2  
Me.Button2.Location = New System.Drawing.Point(360, 168)  
Me.Button2.Name = &Button2&  
Me.Button2.Size = New System.Drawing.Size(120, 48)  
Me.Button2.TabIndex = 2  
Me.Button2.Text = &prve&  
'Form1  
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)  
Me.ClientSize = New System.Drawing.Size(496, 373)  
Me.Controls.Add(Me.Button2)  
Me.Controls.Add(Me.ListBox1)  
Me.Controls.Add(Me.Button1)  
Me.Name = &Form1&  
Me.Text = &Form1&  
Me.ResumeLayout(False)  
End Sub  #End Region  
Dim lianbiao As RoundQueue  
Dim arr As New ArrayList  
Dim i As Long  
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
ListBox1.Items.Clear()  
For i = 1 To 30  
ListBox1.Items.Add(lianbiao.CurrentNode.objData)  
lianbiao.CurrentNode = lianbiao.CurrentNode.NextNode  
End Sub  
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
For i = 1 To 7  
arr.Add(&第& + i.ToString + &个&)  
lianbiao = New RoundQueue(arr)  
lianbiao.CurrentNode = lianbiao.Root  
End Sub  
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
ListBox1.Items.Clear()  
For i = 1 To 30  
ListBox1.Items.Add(lianbiao.CurrentNode.objData)  
lianbiao.CurrentNode = lianbiao.CurrentNode.PrevNode  
End Sub  End Class    Module Module2  
Public Const PI = 3.  
Public Const CStartX = 200  
Public Const CStartY = 200  
Public Structure CAPI  
Public a As Single  
Public r As Single  
End Structure  
Function Trans(ByVal jizuobiao As CAPI, Optional ByVal StartX As Integer = CStartX, Optional ByVal StartY As Integer = CStartY) As System.Drawing.Point  
Dim P As System.Drawing.Point  
P.X = StartX + CLng(Math.Sin(jizuobiao.a) * jizuobiao.r)  
P.Y = StartY + CLng(Math.Cos(jizuobiao.a) * jizuobiao.r)  
Trans = P    
End Function  
Public Function CreatePointQueueA(ByVal x As Long, ByVal y As Long, ByVal r As Long, ByVal itemscount As Long, Optional ByVal Basea As Single = 0) As RoundQueue  
Dim q As New RoundQueue  
Dim a As Single  
Dim j As CAPI  
a = 2 * Math.PI / itemscount  
Dim PointList(itemscount - 1) As Drawing.Point  
'''Now Create list  
Dim i As Long  
For i = 0 To itemscount - 1  
j.a = Basea + a * (i + 1)  
j.r = r  
PointList(i) = Trans(j, x, y)  
'''enqueue  
Dim RQ As New RoundQueue(New ArrayList(PointList))  
Return RQ  
End Function  End Module    Public Class Form2  
Inherits System.Windows.Forms.Form  
Dim penA As Pen  #Region & Windows 窗体设计器生成的代码 &  
Public Sub New()  
MyBase.New()  
'该调用是 Windows 窗体设计器所必需的。  
InitializeComponent()  
'在 InitializeComponent() 调用之后添加任何初始化  
End Sub  
'窗体重写 dispose 以清理组件列表。  
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)  
If disposing Then  
If Not (components Is Nothing) Then  
components.Dispose()  
End If  
End If  
MyBase.Dispose(disposing)  
End Sub  
'Windows 窗体设计器所必需的  
Private components ponentModel.IContainer  
'注意: 以下过程是 Windows 窗体设计器所必需的  
'可以使用 Windows 窗体设计器修改此过程。  
'不要使用代码编辑器修改它。  
Friend WithEvents Button1 As System.Windows.Forms.Button  
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox  
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox  
Friend WithEvents Label1 As System.Windows.Forms.Label  
Friend WithEvents Label2 As System.Windows.Forms.Label  
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox  
Friend WithEvents Label3 As System.Windows.Forms.Label  
Friend WithEvents TextBox3 As System.Windows.Forms.TextBox  
Friend WithEvents Label4 As System.Windows.Forms.Label  
Friend WithEvents TextBox4 As System.Windows.Forms.TextBox  
Friend WithEvents Label5 As System.Windows.Forms.Label  
Friend WithEvents TextBox5 As System.Windows.Forms.TextBox  
Friend WithEvents Label6 As System.Windows.Forms.Label  
Friend WithEvents VScrollBar1 As System.Windows.Forms.VScrollBar  
Friend WithEvents Label7 As System.Windows.Forms.Label  
Friend WithEvents Label8 As System.Windows.Forms.Label  
Friend WithEvents TextBox7 As System.Windows.Forms.TextBox  
Friend WithEvents Button2 As System.Windows.Forms.Button  
Friend WithEvents ColorDialog1 As System.Windows.Forms.ColorDialog  
&System.Diagnostics.DebuggerStepThrough()& Private Sub InitializeComponent()  
Me.Button1 = New System.Windows.Forms.Button  
Me.PictureBox1 = New System.Windows.Forms.PictureBox  
Me.TextBox1 = New System.Windows.Forms.TextBox  
Me.Label1 = New System.Windows.Forms.Label  
Me.Label2 = New System.Windows.Forms.Label  
Me.TextBox2 = New System.Windows.Forms.TextBox  
Me.Label3 = New System.Windows.Forms.Label  
Me.TextBox3 = New System.Windows.Forms.TextBox  
Me.Label4 = New System.Windows.Forms.Label  
Me.TextBox4 = New System.Windows.Forms.TextBox  
Me.Label5 = New System.Windows.Forms.Label  
Me.TextBox5 = New System.Windows.Forms.TextBox  
Me.Label6 = New System.Windows.Forms.Label  
Me.VScrollBar1 = New System.Windows.Forms.VScrollBar  
Me.Label7 = New System.Windows.Forms.Label  
Me.Label8 = New System.Windows.Forms.Label  
Me.TextBox7 = New System.Windows.Forms.TextBox  
Me.Button2 = New System.Windows.Forms.Button  
Me.ColorDialog1 = New System.Windows.Forms.ColorDialog  
Me.SuspendLayout()  
'Button1  
Me.Button1.Location = New System.Drawing.Point(424, 8)  
Me.Button1.Name = &Button1&  
Me.Button1.Size = New System.Drawing.Size(104, 32)  
Me.Button1.TabIndex = 0  
Me.Button1.Text = &Draw It!!&  
'PictureBox1  
Me.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle  
Me.PictureBox1.Location = New System.Drawing.Point(8, 64)  
Me.PictureBox1.Name = &PictureBox1&  
Me.PictureBox1.Size = New System.Drawing.Size(440, 328)  
Me.PictureBox1.TabIndex = 1  
Me.PictureBox1.TabStop = False  
'TextBox1  
Me.TextBox1.Location = New System.Drawing.Point(72, 8)  
Me.TextBox1.Name = &TextBox1&  
Me.TextBox1.Size = New System.Drawing.Size(40, 21)  
Me.TextBox1.TabIndex = 2  
Me.TextBox1.Text = &7&  
'Label1  
Me.Label1.Location = New System.Drawing.Point(16, 16)  
Me.Label1.Name = &Label1&  
Me.Label1.Size = New System.Drawing.Size(56, 16)  
Me.Label1.TabIndex = 3  
Me.Label1.Text = &角的数量&  
'Label2  
Me.Label2.Location = New System.Drawing.Point(120, 16)  
Me.Label2.Name = &Label2&  
Me.Label2.Size = New System.Drawing.Size(32, 16)  
Me.Label2.TabIndex = 4  
Me.Label2.Text = &间隔&  
'TextBox2  
Me.TextBox2.Location = New System.Drawing.Point(152, 8)  
Me.TextBox2.Name = &TextBox2&  
Me.TextBox2.Size = New System.Drawing.Size(40, 21)  
Me.TextBox2.TabIndex = 5  
Me.TextBox2.Text = &1&  
'Label3  
Me.Label3.Location = New System.Drawing.Point(200, 16)  
Me.Label3.Name = &Label3&  
Me.Label3.Size = New System.Drawing.Size(32, 16)  
Me.Label3.TabIndex = 6  
Me.Label3.Text = &半径&  
'TextBox3  
Me.TextBox3.Location = New System.Drawing.Point(232, 8)  
Me.TextBox3.Name = &TextBox3&  
Me.TextBox3.Size = New System.Drawing.Size(40, 21)  
Me.TextBox3.TabIndex = 30  
Me.TextBox3.Text = &50&  
'Label4  
Me.Label4.Location = New System.Drawing.Point(280, 16)  
Me.Label4.Name = &Label4&  
Me.Label4.Size = New System.Drawing.Size(8, 16)  
Me.Label4.TabIndex = 31  
Me.Label4.Text = &X&  
'TextBox4  
Me.TextBox4.Location = New System.Drawing.Point(296, 8)  
Me.TextBox4.Name = &TextBox4&  
Me.TextBox4.Size = New System.Drawing.Size(40, 21)  
Me.TextBox4.TabIndex = 32  
Me.TextBox4.Text = &200&  
'Label5  
Me.Label5.Location = New System.Drawing.Point(336, 16)  
Me.Label5.Name = &Label5&  
Me.Label5.Size = New System.Drawing.Size(8, 16)  
Me.Label5.TabIndex = 33  
Me.Label5.Text = &Y&  
'TextBox5  
Me.TextBox5.Location = New System.Drawing.Point(352, 8)  
Me.TextBox5.Name = &TextBox5&  
Me.TextBox5.Size = New System.Drawing.Size(40, 21)  
Me.TextBox5.TabIndex = 34  
Me.TextBox5.Text = &150&  
'Label6  
Me.Label6.Location = New System.Drawing.Point(480, 64)  
Me.Label6.Name = &Label6&  
Me.Label6.Size = New System.Drawing.Size(32, 16)  
Me.Label6.TabIndex = 35  
Me.Label6.Text = &旋转&  
'VScrollBar1  
Me.VScrollBar1.LargeChange = 30  
Me.VScrollBar1.Location = New System.Drawing.Point(480, 88)  
Me.VScrollBar1.Maximum = 628  
Me.VScrollBar1.Name = &VScrollBar1&  
Me.VScrollBar1.Size = New System.Drawing.Size(24, 280)  
Me.VScrollBar1.TabIndex = 36  
'Label7  
Me.Label7.Location = New System.Drawing.Point(16, 40)  
Me.Label7.Name = &Label7&  
Me.Label7.Size = New System.Drawing.Size(32, 16)  
Me.Label7.TabIndex = 37  
Me.Label7.Text = &颜色&  
'Label8  
Me.Label8.Location = New System.Drawing.Point(136, 40)  
Me.Label8.Name = &Label8&  
Me.Label8.Size = New System.Drawing.Size(32, 16)  
Me.Label8.TabIndex = 39  
Me.Label8.Text = &宽度&  
'TextBox7  
Me.TextBox7.Location = New System.Drawing.Point(168, 32)  
Me.TextBox7.Name = &TextBox7&  
Me.TextBox7.Size = New System.Drawing.Size(40, 21)  
Me.TextBox7.TabIndex = 40  
Me.TextBox7.Text = &2&  
'Button2  
Me.Button2.Location = New System.Drawing.Point(64, 32)  
Me.Button2.Name = &Button2&  
Me.Button2.Size = New System.Drawing.Size(64, 24)  
Me.Button2.TabIndex = 43  
Me.Button2.Text = &选择&  
'Form2  
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)  
Me.ClientSize = New System.Drawing.Size(568, 405)  
Me.Controls.Add(Me.Button2)  
Me.Controls.Add(Me.TextBox7)  
Me.Controls.Add(Me.Label8)  
Me.Controls.Add(Me.Label7)  
Me.Controls.Add(Me.VScrollBar1)  
Me.Controls.Add(Me.Label6)  
Me.Controls.Add(Me.TextBox5)  
Me.Controls.Add(Me.Label5)  
Me.Controls.Add(Me.TextBox4)  
Me.Controls.Add(Me.Label4)  
Me.Controls.Add(Me.TextBox3)  
Me.Controls.Add(Me.Label3)  
Me.Controls.Add(Me.TextBox2)  
Me.Controls.Add(Me.Label2)  
Me.Controls.Add(Me.Label1)  
Me.Controls.Add(Me.TextBox1)  
Me.Controls.Add(Me.PictureBox1)  
Me.Controls.Add(Me.Button1)  
Me.Name = &Form2&  
Me.Text = &Form2&  
Me.ResumeLayout(False)  
End Sub  #End Region  
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
drawit()  
End Sub  
Private Sub VScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles VScrollBar1.Scroll  
drawit()  
End Sub  
Sub drawit()  
penA.Width = CInt(TextBox7.Text)  
PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)  
DrawAngle(CLng(TextBox1.Text), CLng(TextBox2.Text), PictureBox1.Image, CLng(TextBox4.Text), CLng(TextBox5.Text), CLng(TextBox3.Text), VScrollBar1.Value / 10, penA)  
End Sub  
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
penA = New Pen(Color.Red, 2)  
End Sub  
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
If ColorDialog1.ShowDialog() = DialogResult.OK Then  
penA.Color = ColorDialog1.Color  
Button2.BackColor = penA.Color  
End If  
End Sub  End Class&相似文章今日推荐&大家都在看&&&&&&&&&幽默笑话百态军事探索娱乐女性健康旅游互联网··············&转载请注明来自 [url=http://blog.csdn.net/a11s]http://blog.csdn.net/a11s[/url]
作者:董含君
计划是做魔法阵生成器的,后来仔细研究,需要大量的解析几何 数据结构 拼凑算法 随机算法 等等相关内容,所以不可能一次性解决问题了.所以发来当前进度描述一下过程以及想法.不一定能坚持写下去,到了后面的规则制定我头都大了.
--------------------------------------------------------------------------
用途:计算2D飞行游戏弹道,比如彩京那样的,放置游戏人物,屏幕保护,媒体播放器的视觉效果.
一个6边形,根据r扩散.取r两次.则有两个顶点列表.根据这两个停电列表可以表示弹道轨迹.然后旋转魔法阵,得到新的顶点列表,重复上述操作,可以得到任意发散的子弹图形
如果对两个子弹的弹道加上初始速度以及加速度,则可以表示变速直线运动,创造更华丽的子弹组合效果.
如果有了随机生成魔法阵算法,理论上游戏人物的初始位置排列都可以生成
虽然可以随机出现,但是如果用魔法阵顶点来做,会更有规律,生成的敌人组合排列更强,更加合理.因为魔法阵的生成都是有规律的,攻击型的图形表示可以放攻击型人物等等
因为牵扯随机算法,就是给出要求(&比如咒语&),然后根据条件生成魔法阵的过程,就是要求根据&指定规则&后的映射
比如你给出一系列条件:攻击型5个,防御性一个,防御为主,同时复杂程度不超过N(魔法阵外层常量)....其他条件等等.然后根据算法,提取出数字,用作权值.生成魔法阵
N的取得是根据权值而定,就是N越大,魔法阵面积越大,外围图形越多(有隐形的辅助线) 而且如果敌人有人死亡,比如攻击的减少了一个,而且还是防御为主..那么再次带入还能生成新的魔法阵 重新排列防守阵型
强烈怀疑,一开始提出魔法阵的人,绝对不是因为好看!!只不过没有人认真研究罢了.这个很像八卦阵的,全都是数学以及数据关系
---------------------------------------------------------------------------
不废话了...
魔法阵生成系统的第一步 画一个正N角星
这个是基础的基础,正N角星包含正N边形,当N大于一定程度的时候可以近似表示圆,我们需要的顶点列表都可以被线性表描述出来,从而根据下标筛选所需的点.
对于正N角星,基础就是所在外接圆,然后通过极坐标-&平面坐标转化求出顶点
这个就很简单了,高中内容
-------------------极坐标 到 平面坐标的转化--------------
Function Trans(ByVal jizuobiao As CAPI, Optional ByVal StartX As Integer = CStartX, Optional ByVal StartY As Integer = CStartY) As System.Drawing.Point
Dim P As System.Drawing.Point
'P(x,y)就是极坐标的 (Sin a)x 半径r 以及cos a x半径r
P.X = StartX + CLng(Math.Sin(jizuobiao.a) * jizuobiao.r)
P.Y = StartY + CLng(Math.Cos(jizuobiao.a) * jizuobiao.r)
End Function
----------------------------------------------------------------------
另外微软提供的arraylist似乎没有环形链表,尝试用他的queuq的时候,也不好改动,于是我索性干脆自己写了一个.其中包含以下要素:
-------------------------------
Public Class Node
'下一个节点
Public NextNode As Node
Public Container As RoundQueue
'上一个节点
Public PrevNode As Node
'元素信息,用Object表示
Public objData As Object
Public visitFlas As Integer
Public Function InsertNextByData(ByRef d As Object) As Node
Public Sub deleteNode()
Protected Overrides Sub Finalize()
Public Class RoundQueue
'Public EnableBack As Boolean
'虚拟的头节点
Public Root As Node
Public TotalNodes As Long
Public CurrentNode As Node
Public Sub New()
Public Sub New(ByRef L As ArrayList)
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node) As Node
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node, ByRef DataOfNewNode As Object)
Public Function MovePrev() As Node
Public Property GetData() As Object
Protected Overrides Sub Finalize()
Public Sub Dispose()
--------------------------------------------------
有了以上材料作为基础,开始研究算法.
网上找到的大部分都是LOGO语言的,没办法,人家天生适合画这个.
DrawAngle(ByVal Num As Long, ByVal Steps As Long, ByRef map As Bitmap, ByVal x As Long, ByVal y As Long, ByVal r As Long, ByVal basea As Single, ByVal penA As Drawing.Pen)
提供角的数量,跨越点数,目标图像,圆心半径起始角度(用于旋转),以及画笔(颜色,粗细)绘制图形
1 所有的大于2的奇数的正N角星都能一笔画出
(也就是我们可以一直用.nextnode来画)
2 除了六角星以外 所有大于3的正N角星都能一笔画出
(一笔画出就是没有跳跃间断点)
3 大于5的正N角星,会有 ((边数-1)/2)上取整种有效画法
不仅仅是一种画法,当边数等于0或者自身的时候无意义,重复的图形无意义
4 间断点位置,(当角的数量/间隔点差(包含自身))=K的余数为0的点就是断点.
5 当断点出现的时候,当前图形就是基本图形,整个图形在此基础上错位 K次就是整个图形
6 基本图形错位K次的结果不会有任何重复线段以及顶点,而且可以遍历整个节点
以下以正8角星为例(3,4,5,6都有特例,所以不好办) 如图(/images/blog_csdn_net/a11s/8.GIF)
[img]http://dev.csdn.net/images/blog_csdn_net/a11s/8.GIF[/img]
------------------------------------
1 创建m的元素的数组
2 根据m的个数,取得间隔的角度a
3 根据极坐标转化,得到第一个顶点的位置
4 依次类推取得全部顶点
5 将顶点加入环形链表(严格的说,不算队列)
6 绘制,检测错位
--------------
For i = 1 To RQ.TotalNodes
If RQ.CurrentNode.visitFlas = 1 And GetNextNNode(RQ.CurrentNode, Steps).visitFlas = 1 Then
'如果下一个节点的下一个节点已经访问那么
RQ.MoveNext()
If i & RQ.TotalNodes - 1 Then i = i - 1
g.DrawLine(penA, RQ.CurrentNode.objData, MoveNextNNode(RQ.CurrentNode, Steps).objData)
RQ.CurrentNode.visitFlas = 1
-------------
[img]http://dev.csdn.net/images/blog_csdn_net/a11s/88.GIF[/img]
Module Module1
Function DrawAngle(ByVal Num As Long, ByVal Steps As Long, ByRef map As Bitmap, ByVal x As Long, ByVal y As Long, ByVal r As Long, ByVal basea As Single, ByVal penA As Drawing.Pen)
If map Is Nothing Then
Exit Function
Dim g As System.Drawing.Graphics
g = g.FromImage(map)
Dim RQ As RoundQueue = CreatePointQueueA(x, y, r, Num, basea)
Dim i As Long
''''''''' Draw
For i = 1 To RQ.TotalNodes
If RQ.CurrentNode.visitFlas = 1 And GetNextNNode(RQ.CurrentNode, Steps).visitFlas = 1 Then
'如果下一个节点的下一个节点已经访问那么
RQ.MoveNext()
If i & RQ.TotalNodes - 1 Then i = i - 1
g.DrawLine(penA, RQ.CurrentNode.objData, MoveNextNNode(RQ.CurrentNode, Steps).objData)
RQ.CurrentNode.visitFlas = 1
End Function
Sub DrawLine(ByVal fromPoint As Drawing.Point, ByVal toPoint As Drawing.Point)
Function GetNextNNode(ByVal tarnode As Node, ByVal n As Long) As Node
For i = 1 To n
tarnode = tarnode.NextNode
Return tarnode
End Function
Function MoveNextNNode(ByRef tarnode As Node, ByVal n As Long) As Node
For i = 1 To n
tarnode = tarnode.NextNode
Return tarnode
End Function
End Module
Public Class RoundQueue
'Public EnableBack As Boolean
'虚拟的头节点
Public Root As Node
Public TotalNodes As Long
Public CurrentNode As Node
Public Sub New()
'新的根节点
Root = New Node
'全部指向自己
Root.PrevNode = Root
Root.NextNode = Root
'当前节点指向跟节点
CurrentNode = Root
Root.Container = Me
TotalNodes = 1
Public Sub New(ByRef L As ArrayList)
If L.Count & 0 Then Exit Sub
Root.objData = L.Item(0)
Dim i As Long
For i = 1 To L.Count - 1
Dim cn As Node
If i = 1 Then
cn = InsertNode(Root, New Node, L.Item(i))
cn = InsertNode(CurrentNode, New Node, L.Item(i))
cn.objData = cn.objData
CurrentNode.NextNode = cn
Root = CurrentNode
Root = Root.NextNode
'最后一个节点指向头节点
'CurrentNode.PrevNode = Root
'头节点的上一个节点指向最后一个
'Root.PrevNode = CurrentNode
'指针移动到开始
'CurrentNode = Root
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node) As Node
'保存旧的数据
Dim oldnode As Node
oldnode = tarNode.NextNode
'连接新的数据
tarNode.NextNode = newNode
newNode.PrevNode = tarNode
newNode.NextNode = oldnode
'连接旧的数据
oldnode.PrevNode = newNode
'返回刚刚插入的Node
TotalNodes += 1
newNode.Container = Me
Return newNode
End Function
Public Function InsertNode(ByRef tarNode As Node, ByRef newNode As Node, ByRef DataOfNewNode As Object)
'保存旧的数据
Dim oldnode As Node
oldnode = tarNode.NextNode
'连接新的数据
tarNode.NextNode = newNode
newNode.PrevNode = tarNode
newNode.NextNode = oldnode
'连接旧的数据
oldnode.PrevNode = newNode
newNode.objData = DataOfNewNode
newNode.Container = Me
TotalNodes += 1
Return newNode
End Function
Public Function MoveNext() As Node
CurrentNode = CurrentNode.NextNode
End Function
Public Function MovePrev() As Node
CurrentNode = CurrentNode.PrevNode
End Function
Public Property GetData() As Object
Return CurrentNode.objData
Set(ByVal Value As Object)
CurrentNode.objData = Value
End Property
Protected Overrides Sub Finalize()
MyBase.Finalize()
Public Sub Dispose()
Finalize()
Public Class Node
'下一个节点
Public NextNode As Node
Public Container As RoundQueue
'上一个节点
Public PrevNode As Node
'元素信息,用Object表示
Public objData As Object
Public visitFlas As Integer
Public Function InsertNextByData(ByRef d As Object) As Node
Dim n As New Node
n.objData = d
n.PrevNode = Me
Me.NextNode = n
'自己确定后继
Container.TotalNodes += 1
End Function
Public Sub deleteNode()
'Dim t As Node
't = Me.NextNode
If Container.TotalNodes &= 1 Then
Me.Finalize()
Container.Dispose()
Me.PrevNode.NextNode = Me.NextNode
Me.NextNode.PrevNode = Me.PrevNode
Me.Finalize()
Protected Overrides Sub Finalize()
MyBase.Finalize()
Public Class Form1
Inherits System.Windows.Forms.Form
#Region & Windows 窗体设计器生成的代码 &
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
MyBase.Dispose(disposing)
'Windows 窗体设计器所必需的
Private components ponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
Friend WithEvents Button2 As System.Windows.Forms.Button
&System.Diagnostics.DebuggerStepThrough()& Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button
Me.ListBox1 = New System.Windows.Forms.ListBox
Me.Button2 = New System.Windows.Forms.Button
Me.SuspendLayout()
Me.Button1.Location = New System.Drawing.Point(360, 96)
Me.Button1.Name = &Button1&
Me.Button1.Size = New System.Drawing.Size(120, 48)
Me.Button1.TabIndex = 0
Me.Button1.Text = &next&
Me.ListBox1.ItemHeight = 12
Me.ListBox1.Location = New System.Drawing.Point(16, 8)
Me.ListBox1.Name = &ListBox1&
Me.ListBox1.Size = New System.Drawing.Size(200, 316)
Me.ListBox1.TabIndex = 1
Me.Button2.Location = New System.Drawing.Point(360, 168)
Me.Button2.Name = &Button2&
Me.Button2.Size = New System.Drawing.Size(120, 48)
Me.Button2.TabIndex = 2
Me.Button2.Text = &prve&
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(496, 373)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.ListBox1)
Me.Controls.Add(Me.Button1)
Me.Name = &Form1&
Me.Text = &Form1&
Me.ResumeLayout(False)
#End Region
Dim lianbiao As RoundQueue
Dim arr As New ArrayList
Dim i As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListBox1.Items.Clear()
For i = 1 To 30
ListBox1.Items.Add(lianbiao.CurrentNode.objData)
lianbiao.CurrentNode = lianbiao.CurrentNode.NextNode
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i = 1 To 7
arr.Add(&第& + i.ToString + &个&)
lianbiao = New RoundQueue(arr)
lianbiao.CurrentNode = lianbiao.Root
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
For i = 1 To 30
ListBox1.Items.Add(lianbiao.CurrentNode.objData)
lianbiao.CurrentNode = lianbiao.CurrentNode.PrevNode
Module Module2
Public Const PI = 3.
Public Const CStartX = 200
Public Const CStartY = 200
Public Structure CAPI
Public a As Single
Public r As Single
End Structure
Function Trans(ByVal jizuobiao As CAPI, Optional ByVal StartX As Integer = CStartX, Optional ByVal StartY As Integer = CStartY) As System.Drawing.Point
Dim P As System.Drawing.Point
P.X = StartX + CLng(Math.Sin(jizuobiao.a) * jizuobiao.r)
P.Y = StartY + CLng(Math.Cos(jizuobiao.a) * jizuobiao.r)
End Function
Public Function CreatePointQueueA(ByVal x As Long, ByVal y As Long, ByVal r As Long, ByVal itemscount As Long, Optional ByVal Basea As Single = 0) As RoundQueue
Dim q As New RoundQueue
Dim a As Single
Dim j As CAPI
a = 2 * Math.PI / itemscount
Dim PointList(itemscount - 1) As Drawing.Point
'''Now Create list
Dim i As Long
For i = 0 To itemscount - 1
j.a = Basea + a * (i + 1)
PointList(i) = Trans(j, x, y)
'''enqueue
Dim RQ As New RoundQueue(New ArrayList(PointList))
End Function
End Module
Public Class Form2
Inherits System.Windows.Forms.Form
Dim penA As Pen
#Region & Windows 窗体设计器生成的代码 &
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
MyBase.Dispose(disposing)
'Windows 窗体设计器所必需的
Private components ponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents TextBox4 As System.Windows.Forms.TextBox
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents TextBox5 As System.Windows.Forms.TextBox
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents VScrollBar1 As System.Windows.Forms.VScrollBar
Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents TextBox7 As System.Windows.Forms.TextBox
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents ColorDialog1 As System.Windows.Forms.ColorDialog
&System.Diagnostics.DebuggerStepThrough()& Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button
Me.PictureBox1 = New System.Windows.Forms.PictureBox
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.TextBox2 = New System.Windows.Forms.TextBox
Me.Label3 = New System.Windows.Forms.Label
Me.TextBox3 = New System.Windows.Forms.TextBox
Me.Label4 = New System.Windows.Forms.Label
Me.TextBox4 = New System.Windows.Forms.TextBox
Me.Label5 = New System.Windows.Forms.Label
Me.TextBox5 = New System.Windows.Forms.TextBox
Me.Label6 = New System.Windows.Forms.Label
Me.VScrollBar1 = New System.Windows.Forms.VScrollBar
Me.Label7 = New System.Windows.Forms.Label
Me.Label8 = New System.Windows.Forms.Label
Me.TextBox7 = New System.Windows.Forms.TextBox
Me.Button2 = New System.Windows.Forms.Button
Me.ColorDialog1 = New System.Windows.Forms.ColorDialog
Me.SuspendLayout()
Me.Button1.Location = New System.Drawing.Point(424, 8)
Me.Button1.Name = &Button1&
Me.Button1.Size = New System.Drawing.Size(104, 32)
Me.Button1.TabIndex = 0
Me.Button1.Text = &Draw It!!&
'PictureBox1
Me.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.PictureBox1.Location = New System.Drawing.Point(8, 64)
Me.PictureBox1.Name = &PictureBox1&
Me.PictureBox1.Size = New System.Drawing.Size(440, 328)
Me.PictureBox1.TabIndex = 1
Me.PictureBox1.TabStop = False
Me.TextBox1.Location = New System.Drawing.Point(72, 8)
Me.TextBox1.Name = &TextBox1&
Me.TextBox1.Size = New System.Drawing.Size(40, 21)
Me.TextBox1.TabIndex = 2
Me.TextBox1.Text = &7&
Me.Label1.Location = New System.Drawing.Point(16, 16)
Me.Label1.Name = &Label1&
Me.Label1.Size = New System.Drawing.Size(56, 16)
Me.Label1.TabIndex = 3
Me.Label1.Text = &角的数量&
Me.Label2.Location = New System.Drawing.Point(120, 16)
Me.Label2.Name = &Label2&
Me.Label2.Size = New System.Drawing.Size(32, 16)
Me.Label2.TabIndex = 4
Me.Label2.Text = &间隔&
Me.TextBox2.Location = New System.Drawing.Point(152, 8)
Me.TextBox2.Name = &TextBox2&
Me.TextBox2.Size = New System.Drawing.Size(40, 21)
Me.TextBox2.TabIndex = 5
Me.TextBox2.Text = &1&
Me.Label3.Location = New System.Drawing.Point(200, 16)
Me.Label3.Name = &Label3&
Me.Label3.Size = New System.Drawing.Size(32, 16)
Me.Label3.TabIndex = 6
Me.Label3.Text = &半径&
Me.TextBox3.Location = New System.Drawing.Point(232, 8)
Me.TextBox3.Name = &TextBox3&
Me.TextBox3.Size = New System.Drawing.Size(40, 21)
Me.TextBox3.TabIndex = 30
Me.TextBox3.Text = &50&
Me.Label4.Location = New System.Drawing.Point(280, 16)
Me.Label4.Name = &Label4&
Me.Label4.Size = New System.Drawing.Size(8, 16)
Me.Label4.TabIndex = 31
Me.Label4.Text = &X&
Me.TextBox4.Location = New System.Drawing.Point(296, 8)
Me.TextBox4.Name = &TextBox4&
Me.TextBox4.Size = New System.Drawing.Size(40, 21)
Me.TextBox4.TabIndex = 32
Me.TextBox4.Text = &200&
Me.Label5.Location = New System.Drawing.Point(336, 16)
Me.Label5.Name = &Label5&
Me.Label5.Size = New System.Drawing.Size(8, 16)
Me.Label5.TabIndex = 33
Me.Label5.Text = &Y&
Me.TextBox5.Location = New System.Drawing.Point(352, 8)
Me.TextBox5.Name = &TextBox5&
Me.TextBox5.Size = New System.Drawing.Size(40, 21)
Me.TextBox5.TabIndex = 34
Me.TextBox5.Text = &150&
Me.Label6.Location = New System.Drawing.Point(480, 64)
Me.Label6.Name = &Label6&
Me.Label6.Size = New System.Drawing.Size(32, 16)
Me.Label6.TabIndex = 35
Me.Label6.Text = &旋转&
'VScrollBar1
Me.VScrollBar1.LargeChange = 30
Me.VScrollBar1.Location = New System.Drawing.Point(480, 88)
Me.VScrollBar1.Maximum = 628
Me.VScrollBar1.Name = &VScrollBar1&
Me.VScrollBar1.Size = New System.Drawing.Size(24, 280)
Me.VScrollBar1.TabIndex = 36
Me.Label7.Location = New System.Drawing.Point(16, 40)
Me.Label7.Name = &Label7&
Me.Label7.Size = New System.Drawing.Size(32, 16)
Me.Label7.TabIndex = 37
Me.Label7.Text = &颜色&
Me.Label8.Location = New System.Drawing.Point(136, 40)
Me.Label8.Name = &Label8&
Me.Label8.Size = New System.Drawing.Size(32, 16)
Me.Label8.TabIndex = 39
Me.Label8.Text = &宽度&
Me.TextBox7.Location = New System.Drawing.Point(168, 32)
Me.TextBox7.Name = &TextBox7&
Me.TextBox7.Size = New System.Drawing.Size(40, 21)
Me.TextBox7.TabIndex = 40
Me.TextBox7.Text = &2&
Me.Button2.Location = New System.Drawing.Point(64, 32)
Me.Button2.Name = &Button2&
Me.Button2.Size = New System.Drawing.Size(64, 24)
Me.Button2.TabIndex = 43
Me.Button2.Text = &选择&
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(568, 405)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.TextBox7)
Me.Controls.Add(Me.Label8)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.VScrollBar1)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.TextBox5)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.TextBox4)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.TextBox3)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.TextBox2)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.Button1)
Me.Name = &Form2&
Me.Text = &Form2&
Me.ResumeLayout(False)
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Private Sub VScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles VScrollBar1.Scroll
Sub drawit()
penA.Width = CInt(TextBox7.Text)
PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)
DrawAngle(CLng(TextBox1.Text), CLng(TextBox2.Text), PictureBox1.Image, CLng(TextBox4.Text), CLng(TextBox5.Text), CLng(TextBox3.Text), VScrollBar1.Value / 10, penA)
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
penA = New Pen(Color.Red, 2)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If ColorDialog1.ShowDialog() = DialogResult.OK Then
penA.Color = ColorDialog1.Color
Button2.BackColor = penA.Color
End Class&&&&&  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。&&&&&&为你推荐&&&&&&转载本文&UBB代码&HTML代码复制到剪贴板...&更多内容··········&&&&&&&&&&频道精选&&王朝女性&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝分栏&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝编程&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝导购&&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&王朝其他&&|&&|&&|&&|&&|&&|&&&&2005-&&版权所有&}

我要回帖

更多关于 咕噜咕噜魔法阵1 动漫 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信