具体的制作步骤如下:
1、用旋转的方法画正方形ABCD
绘制出线段AB。双击点A,把点A标记为旋转中心。选中点B,选择“变换”—“旋转”命令,将点B旋转90度,得到点D。双击点D,把点D标记为旋转中心。选中点A,选择“变换”—“旋转”命令,将点A旋转-90度,得到点C,绘制出线段AD、DC、BC。
2、构造DC的中点E,并以点E为圆心,EC为半径构造圆
选中线段DC,选择“构造”—“中点”命令,绘制出DC的中点E。依次选中点E和点C,选择“构造”—“以圆心和圆周上点绘圆”命令。
3、构造圆弧CD,并在弧CD上取点F
选中点C、D和圆E,选择“构造”—“圆上的弧”命令。保持弧的选中状态,选择“构造”—“弧上的点”命令,任意绘制出点F。
4、构建勾股树动画按钮
选择点F,单击“编辑”—“操作类按钮”—“动画”,打开“操作类按钮动画点的属性”对话框,选择“动画”选项卡,将“方向”设为“双向”;“速度”设为“慢速”。再选择“标签”选项卡,在标签栏输入“勾股数动画按钮”,单击“确定”,把按钮的位置调整,如下图所示。
5、隐藏部分对象
隐藏圆E、圆弧CD、点E
6、度量出FD的长度,构造出正方形的内部
选择动点F和定点D,单击“度量”——“距离”,测出距离FD;选择点A、B、C、D,单击“构造”—“四边形内部”。
7、设置默认颜色参数
选择FD=1.51厘米、正方形内部,单击“显示”—“颜色”“参数”,打开颜色参数对话框,采用默认设置,单击“确定”按钮。
8、新建参数
单击“数据”菜单—“新建参数”,打开新建参数对话框,在“名称”框中输入“参数”,单击“确定”,新建一个“参数按钮”。如下图所示。
9、构建迭代
依次选择点B、A、“参数=1.00”按钮后,按住Shift键不放,单击“变换”—“深度迭代”,打开“迭代”对话框。在映像处依次单击点C、F,单击“结构”按钮,单击“添加新的映射”。在映像2处依次单击点F、D,单击“迭代”按钮,调整按钮位置。
10、绘制勾股树
选择“参数=1.00”按钮,按数字键盘上的数字按钮,将参数变到5,出现如下图所示图形。单击“勾股数动画按钮”就可以看到运动的勾股树。到此你已经完整的绘制出美丽的“勾股树”。
看到你这题目,百度了一下才知道“勾股树”是啥东西,挺有意思的,试着做了一个简单的~~~直接复制代码到空白项目的帧上就行了import flash.display.Sprite
[SWF(width="800",height="800")]
//定义一个自动创建方块的函数
function createCube(x:Number = 0, y:Number = 0,width:Number = 0,height:Number = 0,clr = 0x):Sprite
{
var sp:Sprite = new Sprite()
sp.graphics.beginFill(clr,0.5)
sp.graphics.drawRect(-width/2,-height/2,width,height)
sp.graphics.endFill()
sp.x = x
sp.y = y
return sp
}
var firstNode:Sprite = createCube(stage.stageWidth/2,stage.stageHeight/2,100,100)//创建第一个方块
firstNode.y += 150
addChild(firstNode)
var node:int = 0//当前节点数目
var newNodeArr:Vector.<Sprite>= new Vector.<Sprite>()//记录每次新生成的方块的数组,并在这基础上新生出下一个节点的方块
var tempArr:Vector.<Sprite>//一个临时数组,每产生一个节点时就会清空一次,然后重新记录新节点里每一个新生成的方块,最后赋值给newNodeArr
newNodeArr.push(firstNode)
var nodeWith:Number = 100
var nodeHeight:Number = 100
while(node <10)//总共生成10个节点
{
nodeWith = nodeWith*Math.sin(Math.PI/4)
nodeHeight = nodeHeight*Math.sin(Math.PI/4)
node++
var clr:uint = 0x + 0x * node//每产生一个节点,色调都递增 0x个值(16进制)
tempArr = new Vector.<Sprite>()
for each (var nd:Sprite in newNodeArr)
{
var newNode1:Sprite = createCube(0,0,nodeWith,nodeHeight,clr)//生成左边的方块
var newNode2:Sprite = createCube(0,0,nodeWith,nodeHeight,clr)//生成右边的方块
nd.addChild(newNode1)
nd.addChild(newNode2)
newNode1.rotation = -45
newNode2.rotation = 45
newNode1.x = -newNode1.width / 2
newNode2.x = newNode2.width / 2
newNode1.y = -newNode1.height
newNode2.y = -newNode2.height
tempArr.push(newNode1)
tempArr.push(newNode2)
}
newNodeArr = tempArr
}
∵最大的正方形E的边长为5,
∴正方形E的面积=5 2 =25,
由勾股定理得,正方形A,B,C,D,E的面积和为S等于正方形E的面积,
∴S=25.