MS visio 中交叉线自动弯曲是如何实现的?
大家好!
小弟正在做一个PERT(网络计划图)的绘制程序,在编写程序的过程中遇到一个问题:
在MS 的visio中,用户在画线的时候,如果两条线出现了交叉,那么新的线条会自动在交叉处弯曲。在我正在写的程序中,也需要有这样的一个功能,但是不知道这样的功能是如何实现的。
最主要的问题是:
1、如何确定交叉?是不是每添加或者每当绘制一条线条的时候,都要遍历之前的所有线条来确定和新的线条是否存在交叉,有没有一些好的算法可以推荐一下;
2、两条线条存在交叉的成立条件是什么?现在我能想到的办法是遍历线条上的所有点来确定交叉点,但这个方法并不好!
还望高手指点!
谢谢!