当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > AS3.0实用代码:绘制各种各样三角形

Flash动画制作
Flash AS 3.0实例教程:用Tween类制作缓动动画
Flash AS2实例教程:制作镭射闪光字动画效果
Flash AS2基础教程:一步绘制线条
Flash cs3仿真艺术设计4.4:模糊滤镜的应用
Flash cs3仿真艺术设计4.5:模糊运动制作飞行文字
Flash cs3仿真艺术设计4.6:组合效果应用实例
Flash cs3仿真艺术设计4.7:模糊滤镜的应用
Flash AS 3.0基础教程:物理基础之重力
Flash AS3.0菜鸟学飞教程:创建自定义类
Flash cs3仿真艺术设计4.8:选择模糊的应用
Flash cs3仿真艺术设计4.9:背景模糊应用技巧
Flash AS3.0菜鸟学飞教程:类的编写之时间轴代码转换为外部类
Flash AS3.0菜鸟学飞教程:类的编写之不使用库元件
Flash cs3仿真艺术设计5.1:2.5D基础应用
Flash cs3仿真艺术设计5.2:2.5D高级应用
Flash AS3.0菜鸟学飞教程:含有多个类的AS3类文件
Flash AS3.0实例教程:AS3.0代码制作3D旋转动画效果
Flash cs3仿真艺术设计5.3:2.5D动画技巧之绘制猴子
Flash cs3仿真艺术设计5.4:交换方法制作嘴型吻合
Flash cs3仿真艺术设计5.5:嵌套法打造角色嘴型吻合

Flash动画制作 中的 AS3.0实用代码:绘制各种各样三角形


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-04   浏览: 84 ::
收藏到网摘: n/a

以下介绍的是如何用程序 as3 (action script 3.0)画出各种各样的三角形:

一、根据三个顶点画出三角形

这是最简单的画法

package com.king{
/*
author: ShangBin Feng
QQ: 334973991
*/
import flash.display.Sprite;
import flash.geom.Point

public class testTriangle extends Sprite{
  public function testTriangle(){
   //已知条件
   var pointA:Point=new Point(0,0);
   var pointB:Point=new Point(50,55);
   var pointC:Point=new Point(0,70);

   //画三角形

   graphics.lineStyle(1, 0xff0000, 1);
   graphics.moveTo(pointA.x,pointA.y);
   graphics.lineTo(pointB.x,pointB.y);
   graphics.lineTo(pointC.x,pointC.y);
   graphics.lineTo(pointA.x,pointA.y);
  }
}
}

 

二、画等腰三角形

1、等腰三角形可以看做其两腰交叉的那个点在一个圆的圆心,那么其他两个顶点则在这个圆上,假设圆心坐标为(0,0),圆的半径为r,两腰夹角为Q,可得另个顶点坐标为(r,0),最后个顶点坐标为(r*cosQ,r*sinQ);

程序为

package com.king{
/*
author: ShangBin Feng
QQ: 334973991
*/
import flash.display.Sprite;
import flash.geom.Point
public class testTriangle extends Sprite{
  public function testTriangle(){
   //已知条件
   var r:Number=100;
   var Q:Number=30*(2*Math.PI/360);//这里得到是弧度,即30度对应的弧度数
   //画三角形
   graphics.lineStyle(1, 0xff0000, 1);
   graphics.moveTo(0,0);
   graphics.lineTo(r,0);
   graphics.lineTo(r*Math.cos(Q),r*Math.sin(Q));
   graphics.lineTo(0,0);
  }
}
}

2、等边三角形可看做两腰夹角为60度的等腰三角形,只需知道边长,即可按照上面的方法画出

3、如果已知条件为 两腰夹角Q,底边长度d,那么两腰的长度即圆的半径r 为d*Math.PI/(2*Q),再按照上面的方法也可画出

4、如果知道等腰三角形的腰长r 和底边长d 也可求出
假设两腰夹角为x ,沿顶点画出等腰三角形的垂直平分线,可看出sin(x/2)=(d/2)/r,可求出夹角Q=(Math.asin((d/2)/r))/2,再按照上面的方法也可画出

三、画普通的三角形

1、已知两角一边

package com.king{
/*
author: ShangBin Feng
QQ: 334973991
*/
import flash.display.Sprite;
import flash.geom.Point;
public class testTriangle extends Sprite{
  public function testTriangle(){
   //已知条件
   var a:Number=100;
   var A:Number=90*2*Math.PI/360;
   var B:Number=30*2*Math.PI/360;
   //画三角形
   var b:Number=a*Math.sin(A)/Math.tan(B)+a*Math.cos(A);
   graphics.lineStyle(1, 0xff0000, 1);
   graphics.moveTo(0,0);
   graphics.lineTo(a,0);
   graphics.lineTo(b*Math.cos(A),b*Math.sin(A));
   graphics.lineTo(0,0);
  }
}
}

2、已知两边和此两边的夹角

package com.king{
/*
author: ShangBin Feng
QQ: 334973991
*/
import flash.display.Sprite;
import flash.geom.Point;
public class testTriangle extends Sprite{
  public function testTriangle(){
   //已知条件
   var a:Number=100;
   var b:Number=200;
   var A:Number=90*2*Math.PI/360;
   //画三角形
   graphics.lineStyle(1, 0xff0000, 1);
   graphics.moveTo(0,0);
   graphics.lineTo(a,0);
   graphics.lineTo(b*Math.cos(A),b*Math.sin(A));
   graphics.lineTo(0,0);
  }
}
}

3、已知三条边长,最大边和最小边之差不能大于第三边

package com.king{
/*
author: ShangBin Feng
QQ: 334973991
*/
import flash.display.Sprite;
import flash.geom.Point;
public class testTriangle extends Sprite{
  public function testTriangle(){
   //已知条件
   var a:Number=100;
   var b:Number=200;
   var c:Number=250;
   //画三角形
   var x=(a*a+b*b-c*c)/(2*a);
   var y=Math.sqrt(b*b-x*x);
   graphics.lineStyle(1, 0xff0000, 1);
   graphics.moveTo(0,0);
   graphics.lineTo(a,0);
   graphics.lineTo(x,y);
   graphics.lineTo(0,0);
  }
}
}