主题:  讨论讨论CD的布尔运算的BUG.......

streakingant

职务:普通成员
等级:3
金币:5.0
发贴:876
#162003/7/9 19:27:33
奇士谦虚了!哈哈,不如小刀开讲好了!俺都准备好笔记啦

那东东俺是在CD11。0繁体迷你中文版试验的(D版CD9没那个修剪),不知其他朋友做的结果怎样,大家不如都贴出来看看!



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#172003/7/9 20:23:25
首先声明:我的观点只是一家之言,绝对不是权威。而且我多次重申这些观点并不能完整解释所有问题。所以我才把我的认识放上来供大家探讨,希望大家能弥补我的不足或是更改我的错误。顺便再说一点,在摸索这个问题的时候我所参考的若干资料我并没有保存下来(那已经是N年前的事情了),现在凭记忆来重述肯定有不少谬误;更何况还有我当时对资料的理解不够的可能!



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#182003/7/9 20:48:21
我们都知道所谓矢量图其实是基于一系列的运算公式上的即时运算的图形。既然有公式,那么就必然有能让用户定义的变量来让程序按用户的意愿来计算。当然也就有若干定量来控制图形物体的属性。

好了。我们来看看CD中的矢量物体大概都分成哪几种。位图首先排除。
1、固定的有机形体。包括没变曲线的几何形体、系统定义的原始形体(polygon、spiral、star等等)。这些是高级的物体,根据物体的不同拥有特殊的变量。例如圆形和方形的可以控制的参数是不一样的。也就是说,这些形体的计算用的是高级的运算方式。当我们将物体进行布尔运算之后,物体会丧失原本拥有的特殊变量,那么他们的计算方式就应该是更低一级的计算。所以这个形体也排除。

(未完,待续)



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#192003/7/9 23:25:57
2、特殊组群物体。这是CD独特的东西,包括Blend、Contour、Extrude等。这些物体通常有控制物体,其它的物件都是基于控制物体而计算出来的。在没打散之前,无法对这些物体进行布尔运算。因而这类物体的计算方式也不是我们讨论的方式。

(未完,待续)



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#202003/7/9 23:46:05
3、Mesh物体。无法进行布尔运算。排除。
4、形体滤镜物体。这是我参考AI下的定义。例如Perspective、Envelope、Distortion等。这类物体在未打散前物体原来的信息是隐藏的(你无法再编辑)只保留了滤镜效果的操作信息。但是能够直接进行布尔运算。所以这算一种。

(未完,待续)

编辑历史:[这消息被离弦小刀编辑过(编辑时间2003-07-10 00:07:25)]


离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#212003/7/9 23:59:46

图片如下:


注:物体的属性可以在属性状态栏获知。我发现很多人用CD没养成看状态栏的习惯,其实状态栏是一个增加工作速度的好帮手........



SYT

职务:普通成员
等级:3
金币:6.0
发贴:1424
#222003/7/10 1:01:40
没有啦??还是在卖关子??
小刀的提示是要改变物件的属性吧?哈哈品的方法通过镜像改变物件原来的数值就没有问题了。



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#232003/7/10 1:10:08
倒,不是卖关子,而是我所得出的结论有很大一部分属于数学范畴,我在想怎么说得不枯燥,并且我也需要理理思路、找些例子.......还在努力回想以前看的资料........ 发现我的记忆力大不如从前了,555555



SYT

职务:普通成员
等级:3
金币:6.0
发贴:1424
#242003/7/10 1:30:37
我的CD9中文特别版情况和streakingant兄的一样。我发现原来cd的布尔运算是极不精确的,例如小刀的例子吧用“正圆”去剪裁“正方”,大家用线框模式去看(放到最大),就会发现原来两个剪裁的边缘是不是重合在一起的,是有一些到,有一些不到。因此再用“焊接”时倒置了streakingant兄弟的情况。
还有我发现原来椭圆是不会有这种情况的,剪裁后的“矩形”边缘是再“椭圆”里面的。
至于小刀的的那种情况,我就没试过,不知是什么原因,请用“线框视图模式”看看,上来告知,我想也一定是不准确造成的。



SYT

职务:普通成员
等级:3
金币:6.0
发贴:1424
#252003/7/10 1:38:09
“正圆”去剪裁“正方”再焊接的例子,看来解决的有效方法是两者的边缘部分出现互交或重合即可完美焊接,大家应该想到办法啦吧?!



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#262003/7/10 1:42:35
syt很仔细啊,我只摆了摆就已经看到问题了........他说的方法是我所想到的第一种方法。



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#272003/7/10 1:46:59
那么,问题来了:简单的物体这样做无妨。我在以前回答“怎么做五环相叠”时用的就是这种方法.......但是很复杂的呢?何况这仅仅只是其中的一种
错误。所以,这并不是最好的解决方法。
另外,我得出的结论是:在CD,即使是重合的边缘也无法保证完美实现布尔运算,我看我明天接着继续说好了。

编辑历史:[这消息被离弦小刀编辑过(编辑时间2003-07-10 01:48:58)]


离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#282003/7/10 8:04:28
如果仅仅是运算不够准确,问题就好解决了。然而我已经证明了不是。


相关文件:点这儿打开

这里提供一个文件。你们大可试一下。重复地试(试完了然后undo再试)。你会发现你每次得到的结果是不一样的。syt和streakingant只是得到其中的一种而已,我贴的图则是更离奇古怪的显示结果。——正是这个原因才让我苦思不得其解,被迫翻阅极端枯燥无味的矢量图形计算原理........



streakingant

职务:普通成员
等级:3
金币:5.0
发贴:876
#292003/7/10 10:00:36
试来试去,我就下面那种结果:


图片如下:



离弦小刀

职务:普通成员
等级:3
金币:7.0
发贴:1413
#302003/7/10 12:18:13
昨晚我可是得到三种效果的 ,看来这有偶然性:(......
既然这个例子说不通,我换个例子来说好了。


图片如下:



图片如下:



图片如下:



图片如下:



图片如下: