flash绘图API:绘制三角形


    绘图Api里面有一个drawTriangles 的方法,是比较让人着迷的APi ,通过使用这个方法,可以实现很多应用技巧。特别是填充方面可以变化出很多让人惊讶的效果。

这些都是依赖这个强大API。

  下面通过这个APi 来实现绘制一个三角形,对比原始的方法,使用MoveTo 和LineTo 两个组合就可以实现了绘制的目的,然而既然有新玩法,就得花点时间去试试这个新玩意。


下面通过调用这个Api来实现绘制一个三角形。我们需要存入一组坐标点即可实现了这个绘制的目的。

import flash.display.Shape;

var shape:Shape=new Shape();
addChild(shape);
shape.x=100;
shape.y=100;


shape.graphics.lineStyle(0);

var ver:Vector.=new Vector.();
ver.push(200,0);
ver.push(0,200);//记录坐标x,y坐标点
ver.push(400,200);
shape.graphics.beginFill(0x333333);
shape.graphics.drawTriangles(ver);
shape.graphics.endFill();
 
效果图像都出来了,可是要是这样简单完事了,就浪费了这个API的潜力。背后的功能还是可以绘制不紧紧三角形,因为这个是一个基础。

flash绘图API:绘制三角形_第1张图片


利用这个api 进行对位图填充,可以尝试到一些效果出来。

import flash.display.Shape;

var shape:Shape=new Shape();
addChild(shape);
shape.x=100;
shape.y=100;


shape.graphics.lineStyle(0);

var ver:Vector.=new Vector.();

for(var i:int=0;i<9;i++)
{
	var px:Number=(i%3)*100;
	var py:Number=int(i/3)*100;
	ver.push(px,py);	
}

var indexes:Vector.=new Vector.();
indexes.push(0,1,3);
indexes.push(1,3,4);
indexes.push(1,2,4);
indexes.push(2,4,5);
indexes.push(3,4,6);
indexes.push(4,6,7);

indexes.push(4,5,7);
indexes.push(5,7,8);

var uvtData:Vector.=new Vector.();
uvtData.push(0,0, 0.5,0, 1,0); 
uvtData.push(0,0.5, 0.5,0.5, 1,0.5); 
uvtData.push(0,1, 0.5,1, 1,1); 

shape.graphics.beginBitmapFill(new Man2());
shape.graphics.drawTriangles(ver,indexes,uvtData);
shape.graphics.endFill();

flash绘图API:绘制三角形_第2张图片


现在把一张位图进行填充到 一个三角形当中去了。在我学习这个APi的过程当中,我发现可以尝试采用列举点办法进行描点,这样一来可以一步步了解这个api的使用。



你可能感兴趣的:(flash,绘图API)