怎样实现这样一条线!(千堆雪!!)(100分)

  • 主题发起人 主题发起人 yabbi
  • 开始时间 开始时间
Y

yabbi

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我现在需要实现一个画流程的软件,可是不知道怎么判断我的mouse点在某条连线上,
同时我生成连线的时候,希望能够通过AI实现判断它经过的路径是否有流程块(控件)或者
流程线,然后选择路径算法。
麻烦了,高手们,帮帮我丫
 
要帮助最好先改标题
 
>怎么判断我的mouse点在某条连线上:

你可以根据点与直线的距离来判断是否点在直线上,当然只要在一个范围内就可以;
如果想移动点击的直线,你需要利用Canvas.Pen.Mode :=pmNotXor来画线;

>判断它经过的路径是否有流程块(控件)或者流程线:

你可以在有流程块或者控件的位置创建区域,判断是否有鼠标移过的点位于区域内:PtInRegion(...).
 
不知怎么的,我看起来总觉得像是AI中关于最短路径的求解的意思。
不知道我是否理解正确???
 
Sorry,我忘了说我这个直线是一个折线,

判断是否有鼠标移过的点位于区域内:PtInRegion(...).不知道是通过消息还是什么其他的。

AI,不是求最短,而是最佳。这样流程图看起来才会很好看(连线不会让人感觉很乱)
 
当一个project有很多流程块的时候要想每条线都漂亮的绕过不好弄[:(]
 
我也认为后一个问题属于迷宫内求最短路径,也就是规定垂直与水平方向的最短路径。
绕过已知的线实质上就是绕过障碍物。
 
《数据结构算法与应用-C++语言描述》 第6章有电路布线的问题,和你的差不多
 
多人接受答案了。
 
后退
顶部