偶久网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索

网站魔兽热门地图

查看: 3445|回复: 4

WE坐标知识

  [复制链接]
ou99孽缘 title=
发表于 2010-12-14 18:29:54
本帖最后由 ou99孽缘 于 2010-12-14 18:30 编辑 这里主要是要说一些触发器里的点的定义问题.我也是个新手,本着共同研究探讨的目的写的,另外本人表达能力有限,那里有不对的地方大家尽管提出来.

1.地图的坐标
魔兽地图使用的是2d平面的坐标(把高度当z轴的无视这句吧- -),也就是包含x轴和y轴的坐标,就像图上的栅格显示的一样,平面上任一点都由x坐标和y坐标决定.

2.坐标的定义
我们可以直接用x和y的值来定义,这样地图的中心也就是默认的原点,这点很重要,直接定义x和y的坐标是绝对的,就是因为原点是确定不变的,所以这种定义是没办法跟随变量做出变化的,所以如果我们要做出变化的点变量,x和y的值就不能是常量(固定的值),而应该是根据固定点与变点的坐标之间的关系作出的数学表达式.
比如我们要定义一个点变量表示A到B的线段上的点,A点和B点是确定的,因为可以用技能释放目标,单位的位置等去赋以确定的值(确定绝不一定固定,一些单位也可以是变量,再说怕有些人迷糊了- -),所以我们可以用A和B与变点坐标的关系来表示:
画出一个平面坐标试试看,每个线段AB上的点的x和y坐标都可以用A的坐标加上B与A的坐标差的一定倍数来表示,即X(变点)=X(A)+[X(B)-X(A)]*一定的数,把这个数设成一个循环整型变量不就推导出了A点到B点的直线上的点,再给这些点添加上特效,将施法者的位置赋予A点,将目标点赋予B点,一个简单的技能就做出来了.

3.相对坐标
虽然如上面所讲,原点固定,我们还是做出了点变量的表示方法,但是想一下,为什么算完A,B坐标之差还要再加上A点的坐标才能算线段AB上的点,如果要用到一些复杂的函数关系一定很难算,而且这样语句也不简洁.应该注意到:
加上A的坐标是因为我们定义的坐标是以地图中心这个固定点为原点的,而不只是以A的坐标为基础.
这就相当于算出了以A点为原点的坐标,再加上A点以地图中心为原点的坐标,那么为什么不直接以A为原点定义点变量呢?这就引入了相对坐标的概念,也就是用到了那个确定的点(如A,B),就以这个点为原点建坐标来表示点变量,这样定义的点的x,y坐标是相对于那个固定点的坐标,而WE里用得最多的也正是这种方法定义的点.
如:设置变量dian(点变量)=value
value的选项里的 点的坐标: 点()的x,y坐标(0.00,0.00)
这里的点()就是上面说的确定点(如A,B),x,y坐标就是相对的坐标,因为整个坐标系都是以点()为原点,为基础而建立的.
这样建立起了坐标,就可以轻松的表示与点()相关的点变量,而不受到地图中心这个固定原点的束缚,因为点()虽然是坐标系的原点,却是不 固定 的,它只是被其他变量或单位 确定 而已.
这样,我们可以依靠原点的可变性作出更多变的曲线,
如:把点()本身设置成有运动轨迹的点变量等等.......

4.极坐标
WE里设置点变量时还有一个选项:点向方向 位移,它也是用两个量表示了一个点相对于另一点的相对坐标,位移和方向,其实是翻译的不准确而已,学过极坐标的人都该知道应该指的是是位移(长度)和角度,极坐标系也是一种常用的平面坐标表示方法,它用位移即一个点相对于极点的距离,以及该点与原点的连线相对于极轴的角度表示,因为定义了极点(原点)和极轴(从极点引出的一条射线,可以想象成x轴),平面上任一点就可以用这两个值确定:
如角度为w,位移为d的点可以确定为,以极点为圆心,d为半径的圆上,以极轴为基边,正w度(逆时针方向为正)的射线与圆的交点,所以用极坐标来定义点是很方便的,而且与xy坐标系不同,因为角度从0到2Pi(360度)就是一个圆周,你可以轻易的用极坐标表示出一些类似圆的轨迹.
如:
把角度设为 固定角*递增数(可以用循环变量1~x)
把位移设为常量
这样就描述了圆的轨迹
再如:
把角度设为 固定角*递增数(可以用循环变量1~x)
把位移设为 递增数
就出现了螺旋线的轨迹
诸如此类有很多有趣的曲线可以描述.......




ou99孽缘 title=
 楼主| 发表于 2010-12-14 18:30:09
{:6_306:}{:6_325:}
  路过  为了钱  
发表于 2011-10-29 15:15:54
虽然看的非常蒙
快速回复 返回顶部 返回列表