Advertisement
Guest User

Untitled

a guest
Sep 14th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package  {
  2.     import flash.geom.Point;
  3.     public class ChaikinAlgorithm {
  4.  
  5.         public function ChaikinAlgorithm(s:StaticClassHelper) {
  6.  
  7.         }
  8.    
  9.    
  10.         static public function processPolygon(arrayOfPoints:Array, times:uint):Array{
  11.             if (times == 0){
  12.                 times = 1;
  13.             }
  14.             var result:Array = arrayOfPoints;
  15.             for (var i:int = 0; i < times; i++){
  16.                 result = processArray(result);
  17.             }
  18.             return result;
  19.         }
  20.        
  21.         static private function processArray(arr:Array):Array{
  22.             var newArr:Array = [];
  23.             var newPointA:Point;
  24.             var newPointB:Point;
  25.             for (var i = 0; i < arr.length - 1; i++){
  26.                 var a:Point = arr[i];
  27.                 var b:Point = arr[i + 1];
  28.                 newPointA = multiplyPointWithNumber(a, 3/4).add( multiplyPointWithNumber(b, 1/4));
  29.                 newPointB = multiplyPointWithNumber(a, 1/4).add( multiplyPointWithNumber(b, 3/4));
  30.                 newArr.push(newPointA, newPointB);
  31.             }
  32.             newPointA = multiplyPointWithNumber(arr[i], 3/4).add( multiplyPointWithNumber(arr[0], 1/4));
  33.             newPointB = multiplyPointWithNumber(arr[i], 1/4).add( multiplyPointWithNumber(arr[0], 3/4));
  34.             newArr.push(newPointA, newPointB);
  35.             return newArr;
  36.         }
  37.        
  38.         static private function multiplyPointWithNumber(p:Point, n:Number):Point{
  39.             return new Point(p.x * n, p.y * n);
  40.         }
  41.  
  42.     }
  43. }
  44.  
  45. internal class StaticClassHelper {
  46.        
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement