方法论实践之剪切算法设计

需求描述如下:

修剪trim

定义:

执行修剪命令,将要修剪的对象在选中的对象处形成交点,然后把超出选中对象的部分修剪掉;修剪的对象可重复选择;

激活方式:

点击修剪图标;命令行输入trim回车;命令行输入tr回车(字母不分大小写)

命令行:

>trimTR)(回车)..……………………………激活修剪命令

>选择剪切边:(回车或鼠标右键单击).……….鼠标点选或框选选择剪切边

>选择要修剪的对象:……………………………鼠标点选或框选延伸的对象(可重复)

>esc………………………………………………...esc键结束命令

注:(可重复)部分,即可以重复选择修剪的对象,直到按下esc键为止。

开始分析。

先从最简单的情况入手。

裁剪线为单条直线段,选中的裁剪对象为单条直线段。

 

确定这种情况下的裁剪规则。

先选中裁剪对象,即图中虚线。鼠标选中被裁剪对象,将对象分成左右两个部分,鼠标的位置决定裁剪哪侧对象。

这个法则完全可以解决这种情况下的问题。

这种法则也可以处理下图情况。


但不能处理如下情况




进而修改方案:

计算分割对象与被分割对象交点。设有n个交点,被分割对象分成k段。当n>1k>1时,裁剪命令有效。用户指定删除某一段。

裁剪命令实际上是打断和删除两个操作的组合。

这种方案可以解决如上问题。

也可以解决:

圆弧,圆等复杂情况下的裁剪情况。

这个例子说明.描述清问题,就解决了一半问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值