Speaking of Triangles, I made an utility Class to help me solve Triangle problems and the formulas are all taken from mathworld website
It will help you get the missing values of your triangles : Hope it helps someone out there ... Alain /*************************************************************************** ****** * * Triangle Solver * * File: TriangleSolver.as * Created by: [EMAIL PROTECTED] * **************************************************************************** *****/ /*************************************************************************** ****** * * * Class: TriangleSolver * * Class that helps solving triangle equations, all the methods are static * so there is no need to create an instance of the class * * Math reference : http://en.wikipedia.org/wiki/Triangle * * Usage Example : * * import ca.daroost.utils.TriangleSolver; * // lets say that we have a rectangle triangle of known height and width and we are looking for the hypotenuse * var hyp:Number = TriangleSolver.hypothenuse(100, 50); * * **************************************************************************** *****/ class ca.daroost.utils.TriangleSolver { // /*************************************************************************** ****** * * Properties * **************************************************************************** *****/ // public static var DEGTORAD:Number = Math.PI/180; public static var RADTODEG:Number = 180/Math.PI; // /*************************************************************************** ****** * * Constructor : TriangleSolver * **************************************************************************** *****/ // function TriangleSolver() { } // /*************************************************************************** ****** **************************************************************************** ****** ** ** Methods ** **************************************************************************** ****** **************************************************************************** *****/ // // /*************************************************************************** ****** * * Method : hypothnuse * * The Pythagorean theorem * * @param : a - the a side * b - the b side * **************************************************************************** *****/ // // c = sqrt(a^2 + b^2) public static function hypothenuse(a:Number, b:Number):Number { var c:Number; c = Math.sqrt(Math.pow(a,2)+Math.pow(b,2)); return c; } // /*************************************************************************** ****** * * Method : sineRule * * Refers to the sine rule * c/sin(angleC) = a/sin(angleA) = b/sin(angleB) * * @param : c - the c side * angleC - the angle opposed to the c side * a - the a side * angleA - the angle opposed to the a side * **************************************************************************** *****/ // // public static function sineRule(c:Number, angleC:Number, a:Number, angleA:Number):Number { if ( (angleC == undefined) || (angleC == null) ) { angleC = Math.asin(c*Math.sin(a)/angleA); return angle; } else if ( (c == undefined) || (c == null) ) { c = a*Math.sin(angleC)/Math.sin(angleA); return c; } } // /*************************************************************************** ****** * * Method : cosRule * * Refers to the cosine rule which is the extended version of the Pythagorean theorem * c^2 = a^2 + b^2 - 2*a*b*cos(angleC) * * @param : c - the c side * a - the a side * b - the b side * angleC - the angle opposed to the c side * **************************************************************************** *****/ // public static function cosRule(c:Number, a:Number, b:Number, angleC:Number):Number { if ( (angleC == undefined) || (angleC == null) ) { angleC = Math.acos((Math.pow(a,2)+Math.pow(b,2)-Math.pow(c,2))/2*a*b); return angle; } else if ( (c == undefined) || (c == null) ) { c = Math.sqrt(Math.pow(a,2)+Math.pow(b,2)-2*a*b*Math.cos(angleC)); return c; } } // /*************************************************************************** ****** * * Method : angleRule * * Refers to the angle rule * angleC + angleA + angleB = 180 * * @param : angleA - the angle opposed to the a side * angleB - the angle opposed to the b side * **************************************************************************** *****/ // public static function angleRule(angleA:Number, angleB:Number):Number { var angleC:Number; angleC = 180 - (angleA + angleB); return angleC; } // /*************************************************************************** ****** * * Method : area * * Calculates the area of a triangle (best for a rectangle triangle) * A = b*h/2 * * @param : b - the base of the triangle * h - the height of the triangle * **************************************************************************** *****/ // public static function area(b:Number, h:Number):Number { var area:Number; area = b*h/2; return area; } // /*************************************************************************** ****** * * Method : areaHeron * * Calculates the area of a triangle where s is the triangle's semiperimeter * s = a+b+c/2 * A = sqrt(s(s-a)(s-b)(s-c)) * * @param : a - the a side * b - the b side * c - the c side * **************************************************************************** *****/ // public static function areaHeron(a:Number, b:Number, c:Number):Number { var area:Number; area = Math.sqrt((a+b+c)*(a+b-c)*(b+c-a)*(c+a-c))/4; return area; } } -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Merrill, Jason Sent: 14 décembre 2006 14:06 To: Flashcoders mailing list Subject: RE: [Flashcoders] Area of a triangle using perimiter values only Thanks - all, yes Jake saw it first and others chimed in with the same thought, my numbers did not compute because they did not make a triangle. I have it working now. The formula is fine, and this function works for me as long as the values come from a true triangle: public static function areaOfTriangle(a:Number, b:Number, c:Number):Number{ return (Math.sqrt((a+b+c)*(b+c-a)*(c+a-b)*(a+b-c)))/4; } Thanks eveyrone! Jason Merrill Bank of America Learning & Organizational Effectiveness _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.409 / Virus Database: 268.15.18/586 - Release Date: 2006-12-13 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.409 / Virus Database: 268.15.18/586 - Release Date: 2006-12-13 _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com