1 /** 2 * com.sekati.draw.Triangle 3 * @version 1.0.7 4 * @author jason m horwitz | sekati.com 5 * Copyright (C) 2007 jason m horwitz, Sekat LLC. All Rights Reserved. 6 * Released under the MIT License: http://www.opensource.org/licenses/mit-license.php 7 */ 8 9 import com.sekati.geom.Point; 10 11 /** 12 * Triangle drawing utility. 13 */ 14 class com.sekati.draw.Triangle { 15 16 /** 17 * Draw a triangle in an existing clip 18 * @param mc (Movie Clip) target clip to draw in 19 * @param p1 (Point) first point 20 * @param p2 (Point) second point 21 * @param p3 (Point) third point 22 * @param fillColor (Number) hex fill, if undefined rectangle will not be filled 23 * @param fillAlpha (Number) fill alpha transparency [default: 100] 24 * @param strokeWeight (Number) border line width, if 0 or undefined no border will be drawn 25 * @param strokeColor (Number) hex border color 26 * @param strokeAlpha (Number) stroke alpha transparancy [default: 100] 27 * @return Void 28 * {@code Usage: 29 * var tri:MovieClip = this.createEmptyMovieClip ("tri", this.getNextHighestDepth ()); 30 * Triangle.draw(tri, new Point(0,30), new Point(30,30), new Point(30,0), 0xff00ff, 100, 1, 0x00ffff, 100); 31 * } 32 */ 33 public static function draw(mc:MovieClip, p1:Point, p2:Point, p3:Point, fillColor:Number, fillAlpha:Number, strokeWeight:Number, strokeColor:Number, strokeAlpha:Number):Void { 34 var sw:Number = (!strokeWeight) ? undefined : strokeWeight; 35 var sc:Number = (isNaN( strokeColor )) ? 0x000000 : strokeColor; 36 var sa:Number = (isNaN( strokeAlpha )) ? 100 : strokeAlpha; 37 var fa:Number = (isNaN( fillAlpha )) ? 100 : fillAlpha; 38 39 mc.clear( ); 40 mc.lineStyle( sw, sc, sa, true, "none", "square", "miter", 1.414 ); 41 if (!isNaN( fillColor )) { 42 mc.beginFill( fillColor, fa ); 43 } 44 mc.moveTo( p1.x, p1.y ); 45 mc.lineTo( p2.x, p2.y ); 46 mc.lineTo( p3.x, p3.y ); 47 mc.lineTo( p1.x, p1.y ); 48 if (!isNaN( fillColor )) { 49 mc.endFill( ); 50 } 51 } 52 53 private function Triangle() { 54 } 55 }