求教一需求该怎么实现比较好!谢谢~
本帖最后由 sxhfinory 于 2013-02-28 12:59:56 编辑 需求是随机产生10条直线(长度随机),然后求出由这10条直线围出得若干个闭合区域中最大的那一个(Autocad2007 objectarx2007 VS2005)
我是这样做的,随机产生20个坐标,然后连出10条线并求出每条线的斜率,再通过直线方程,这样我得到了10条线互相相交的所有交点坐标。
但接下去我不懂了,怎么知道哪些交点可以围成一个闭合区域?用图的方式吗?
我想到的方法是,一个交点由两条直线形成,那我就求出形成每一个交点的两条直线上的所有交点,然后放到一数组中,
交点 形成交点的两条直线上在图中所有的交点
1 2 3 4 5
2 2 7 8
3 1 8 9
4 。。
5 。。
6 。。
7 。。
8 。。
9 。。
接下去就不停循环求出每一种可能性,但是这样复杂度是不是太高,而且具体代码实现我也遇到了困难,所以小弟在这请教有没有其他方法?求指点!谢谢~
[解决办法]
10条……直接做凸多边形的直线分割吧。实现的确是挺麻烦的,
[解决办法]
计算几何大牛:http://www.codeproject.com/KB/recipes/Wykobi.aspx
[解决办法]
面积最大的多边形是通过拼接不重叠的三角形来组合
多边形的面积 = 每个不重叠的三角形的面积之和