需求描述如下:
修剪trim
定义:
执行修剪命令,将要修剪的对象在选中的对象处形成交点,然后把超出选中对象的部分修剪掉;修剪的对象可重复选择;
激活方式:
点击修剪图标;命令行输入trim回车;命令行输入tr回车(字母不分大小写)
命令行:
>trim(TR)(回车)..……………………………激活修剪命令
>选择剪切边:(回车或鼠标右键单击).……….鼠标点选或框选选择剪切边
>选择要修剪的对象:……………………………鼠标点选或框选延伸的对象(可重复)
>esc………………………………………………...按esc键结束命令
注:(可重复)部分,即可以重复选择修剪的对象,直到按下esc键为止。
开始分析。
先从最简单的情况入手。
裁剪线为单条直线段,选中的裁剪对象为单条直线段。
确定这种情况下的裁剪规则。
先选中裁剪对象,即图中虚线。鼠标选中被裁剪对象,将对象分成左右两个部分,鼠标的位置决定裁剪哪侧对象。
这个法则完全可以解决这种情况下的问题。
这种法则也可以处理下图情况。
但不能处理如下情况
进而修改方案:
计算分割对象与被分割对象交点。设有n个交点,被分割对象分成k段。当n>1且k>1时,裁剪命令有效。用户指定删除某一段。
裁剪命令实际上是打断和删除两个操作的组合。
这种方案可以解决如上问题。
也可以解决:
圆弧,圆等复杂情况下的裁剪情况。
这个例子说明.描述清问题,就解决了一半问题。