近一段时间来除了热切关注数码相机之外就是生病,只有两个感觉,一是对数码相机恨铁不成钢,一是中国的医院太少点人道主义精神了。
今天趁小恚初愈,幼子稍安,抽空写点东西。
当然还是写FH MX,呵呵。
FH的这次升级实在是有质的飞跃,我认为在设计理念上是超越了其它矢量软件的。当然每个软件都有其特色,其它矢量软件的fans不要为我的这个“超越”的评价再起争执。
对比V10以前的版本,我们选用画图案来了解MX的改进之处。
先来简单看看以前FH是怎样画图案的,如图,画一个椭圆,调出Transform面板。这个面板集成着多个变形功能,我们只用它的第二项:旋转。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>作如图设置,点击Rotate即成所示效果。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>对其进行填充,注意object面板,选中Even&odd fill选项(奇偶填充)。这就是一个简单的图案了,它的基本形是个椭圆。众所周知,改变基本形或者旋转中心的位置都会使图案发生改变,其结果是难以预期的,想要尝试其它效果,就只有从头再做这一条路,我想,在FH MX发布以前,所有的矢量软件在这点上都是一样的。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>好了,看看FH MX怎么做。首先,画出基本形,在object面板上添加Duet特效。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>注意要选中Rotate选项。另外,和Transform面板里不同,这里的X、y坐标是物件本身坐标而不是页面坐标,所以希望以中心为旋转点的话,就要把xy坐标设为0
。然后回车后发觉效果有些意外,象是只旋转了三次而不是8次。这是因为软件的算法问题,我猜测是旋转角度是用copys的个数均分360而得来的,所以不要用偶数来旋转。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>把copys的个数改设为7或9(此例用的是7),即成图示。这时按object面板的填充钮,发现只有原始形被填充了,这怎么能形成漂亮图案呢?不要紧,其实是个不当的操作,正确的做法先选中obfect面板中的Effect:Duet字样,然后再填充。象这样已经做错了其实也容易纠正,用鼠标按住Fill:basic字眼,拖到Effect:Duet下再松开即可。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>瞧,就是这样。做到这一步,和老版的结果已经一致了,只是实现的方法不同而已,并不能由此看出MX的优势来,好吧,我们继续。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>再次调出object面板,选中Effect字眼,改变copys个数,图案变得更紧密了,只是这个小小的功能,在以前也是不行的,只能用Transform面板重新做。注意本图面板里的joined和Enen&Odd fill一定要选上。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>再来看改变旋转中心点的效果。选中Effect字眼时原始形上会出现一个十字小花的图标,那就是它的中心作用点,用鼠标拖动它,图案即会动态改变。当然你也
可以不用鼠标拖而采取改变面板中x、y坐标值的方法,不过我认为除非你的要求十分精确,否则还是拖的方法更方便快捷。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>你可以把中心点拖到形体之外。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>更精彩的,改变原始形。在与原始形交叠的地方画一任意形,本图中画了一个小一点的椭圆,将两个物件全选中,调出Xtra Operations面板,点punch按钮。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>瞧,原始形改变造成图案的改变。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>你还可以改变原始形的节点,为了看得明白,用动画演示吧。是不是很快意?
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>你还可以再添加特效,如本图添加了Bend特效。
javascript:if(this.width>screen.width-333)this.width=screen.width-333" border=0>你还可以……呵,你还可以自己试试,别人告诉你的只能是一部分。古人云:纸上得来终觉浅,绝知此事要躬行。
谢谢streakingant顶贴。
再补充一点,利用面板里数值的改变可以做复杂的变形动画,这是flash难以完成的,方法见置顶贴子http://www.5d.cn/bbs/NewsDetail.asp?id=796603
下面可以看一个例子,做的心急,不细致,导致中间有点过渡不光滑,你可心花一个小时做个细腻点的