http://www.51js.com/viewthread.php?fpage=1&tid=18944
看看星际的路径算法部分吧,呵呵干吗要折线啊
看看星际的路径算法部分吧,呵呵干吗要折线啊
解决方案 »
- 请教一下onclick和onmouseout的冲突怎么解决?
- .NET系统嵌套的JAVA系统子页面无法使用parent.document
- extjs2 上传附件问题 高手进哈
- \s*为什么匹配不到abc (abc后有空格)后面的空格???
- html 页面内可以引用吗?
- js代码 IE提示缺少标识符 ff提示函数changeTableStyle is not defined (没有定义)
- showModalDialog页面处理问题
- 可个根据对应索引获得对象吗?
- 一个多个关联的下拉列表框怎么做?
- 请帮我写一个方法:写一个javascript方法,获取指定dom元素的所有父节点。(分不够可以加分)
- 怎样弹出一个连标题栏都没有的,且浮在最上层的,又不影响别的窗口操作的新窗口?
- 如何修改IE自带的标题阿
http://www.51js.com/viewthread.php?fpage=1&tid=18944
看看星际的路径算法部分吧,呵呵干吗要折线啊
=====================
他这个太复杂了,看不明白
我这个只要注意避开两样东西就可以了
一个是表格,一个是现有的线条
我不清楚你现在如何绘制图象,所以我说的方法里关于绘制都需要你自己想办法了~首先找到直线的最短路径,然后让点延这个直线行走,同时绘制,当遇到另一条直线时(就是碰撞检测),绘制一个曲线,VISIO用过就知道什么意思。当遇到是图形时,就判断这个图形的边缘,而这个绘制的点就向最进的那个边缘移动,同时绘制,一直绘制到这个点可以再次不与图形碰撞,可向目标点运动为止,则继续直接向目标点运动。这个是最简单的路径查找方法,在你这里是可以用的,如果用在游戏里,可能就会出现《血狮》那个游戏里出现的卡死到某个地方出不来的情况。当然,用星际的A*算法是最好的,这样绘制出来的线条是最短而且最好看的~~~
生成各表的方式,我是指,比如各表外面套了一个大table
各表是否可移动我用这个来画办公自动化的流程图,倒跟你这个类似
表不可以移动,都是固定的to 懒猫:
我用的是VML画线,VML里面有一个PATH,可以直接指定线的路径,就是我要得到的几个转折点坐标
现在没多少时间去研究什么A*算法
而且在网页里面还得考虑效率问题,搞不好网页就死在那里了
如果用点来追溯,这样在有几十个表,上百个关系的时候,速度可能会很慢
1 根据两点坐标求出三角形两边
有两种可能,随便哪种都可以
C(x3,y3)
x3=x2-k1 ,y3=y1
相应可求出D(x4,y4)点
x4=x3,y4=y2
2 在AC、BC中判断是否有障碍
无障碍情况可根据C、D得出线路
有障碍情况:
计算障碍高度,根据障碍点居上还是居下来决定是爬升还是降落。
设爬升点是A1(x5,y5)
x5=障碍左边缘-k1,y5=x3+障碍上边缘+k1
计算A1到B的,重复1我下午有课,得赶紧走了,我写了一个演示,但没写完,原理是利用table在网页中构造一个25*25的网格,利用合并单元格的操作生成出表(字段),线条用改变网格的bordercolor(上下左右)来实现。
这样的好处在于我判断障碍和得出障碍的四个边缘非常容易。
不知道你理解我的意思没有~~~这里的点是一个抽象的点,并不是像素的点~~~如何绘制,采用任何方法都是一样的~~~和用VML还是组件无关~~
已知:初始点A和结束点B的坐标
步骤:
1 在A、B两点之间拉直线段AB
2 求出跟所有障碍物边界的所有的交点,共有n个 (M1 ,M2,.....Mn)
3 循环交点直到交点数目为0
a)把第i个交点调整到两个障碍物之间,
b) 计算新产生的交点,调整交点数组
4 重复步骤3,直到交点数目为0