论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Fireworks教程
Tag:切片,gif,动画,文字,图标,照片,网页,效果图,表情,按钮,工作,8.0,cs,视频教程

Fireworks教程_阿基米德螺线排列小图形教程

文章类别:Fireworks | 发表日期:2010-4-26 8:57:50

阿基米德螺线排列小图形教程

小图形排列问题,以阿基米德螺线为例

其极坐标方程为
r=aθ
分析:
其每一点的坐标可以化为(aθcosθ,aθsinθ),那么只要让图形以此坐标排列就ok了哈,而且为了效果美观,当然随着排列还应该转动,手动排列不是最佳选择,这里用jsf实现,分三步

《一》变量:
我们将原参数与所需变量分别对应如下
原参数     变量
θ         angle
a         parameter
(x,y)     (a,b)

定义这些变量和初始值如下:
var angle=Math.PI/4;
var parameter=10;
var a,b;
初始值可以根据需要更改(注意,angle这里为弧度值)。

《二》位置与旋转:
经过开始的分析我们可知每点图形的坐标为
a=parameter*angle*Math.cos(angle);
b=parameter*angle*Math.sin(angle);
我们可以应用fw.getDocumentDOM().moveSelectionBy({x:a, y:b}, false, false);将图形移动到制定位置

旋转可由fw.getDocumentDOM().rotateSelection()函数实现,其参数为角度值,弧度变成角度需要乘以180,函数如下
fw.getDocumentDOM().rotateSelection(angle*180, "autoTrimImages transformAttributes");

《三》循环:
这样便可完成了对一个图形的排列,不过我们目标是排列多个图形,所以要加个循环,但我们注意到每次排列,angle的值必须不同,角度是也必须变化的,于是我们加个perde变量,表示每个图形转过的角度,通过与angle的叠加来实现角度变化的效果。
图形的获得可由复制粘贴得到,这里就不再多说了。

整个jsf代码如下:

var angle=perde=Math.PI/4;
var parameter=10;
var a,b;
fw.getDocumentDOM().clipCopy();
for(n=0;n<=10;n++){
a=parameter*angle*Math.cos(angle);
b=parameter*angle*Math.sin(angle);
fw.getDocumentDOM().clipPaste("ask user", "vector");
fw.getDocumentDOM().moveSelectionBy({x:a, y:b}, false, false);
fw.getDocumentDOM().rotateSelection(angle*180, "autoTrimImages transformAttributes");
angle=angle+perde;
}

在记事本里输入上述代码,保存在
.....Fireworks 8\Configuration\Commands
文件夹下,不要忘记把扩展名改为jsf

打开fireworks,画一个小小的五角星

在命令菜单找到刚才建立的命令,应用,得到


这里是按照均分角度排列的(并非紧密排列,大家可以更改下代码,看看怎么样紧密排列),其均分的度数由perde控制,螺线缩放的大小由parmeter调节,图形的个数由n的的范围控制(即循环里的n<=10),这些都可以更改的,大家可以试试更改后的效果
例如将perde改成Math.PI/6,parameter改成5,n范围改成n<=20,

视频教程列表
文章教程搜索
 
Fireworks推荐教程
Fireworks热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058