bluemoon 发表于 2003-12-10 10:31:00

[求助看看大家有没有什么好办法把这个做出来啊

要求是:已知上图,上图中的红线是后来画出的。
如何处理的到如下图的图形呢?
请给个思想啊

efan2000 发表于 2003-12-10 11:53:00

选择所有实体,依次判断是否与红线相交,如果是则调用内部命令BREAK在交点处打断,再选择红线左边的区域内实体。

风魔飘香 发表于 2003-12-10 13:01:00

学习一下。

mccad 发表于 2003-12-10 14:10:00

1.先用GetCorner 方法得到一个选择对象的框,通过这个框就可以选中框中的对象了。
2.选择切开的线,通过线取得线的各个端点。
3.选择要删除的一侧。然后通过Offset来偏移第2步选中的线到要删除的一侧,偏移距离要小一些。
4.得到偏移的后使用Break来断去不需要的一侧。注意该过程要使用2到3次,这样才能保证剪得干净。
5.通过第二步得到的端点加上第一步得到的角点来形成一个框,通过这个框来删除框中的对象。
6.剩下的就是第二步的线的修剪了。

如果一般的图形都是封闭的,倒可以考虑转成面域,通过面域间的交集来求,可能会简单很多。

bluemoon 发表于 2003-12-10 16:39:00

我原先想的类似于明总的想法 不过比明总的更麻烦
图形都是封闭的 所以可以考虑用面域 但是红线与外框怎么形成面域呢?
我想用thisdrawing.sendcommand"-boundary   "来实现。
不知道明总有没有更好的想法
页: [1]
查看完整版本: [求助看看大家有没有什么好办法把这个做出来啊