note 11360 modified in function.imagepolygon by felipe

From: Date: Tue, 22 Jul 2008 18:51:32 +0000
Subject: note 11360 modified in function.imagepolygon by felipe
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-142524@lists.php.net to get a copy of this message
Here are some handy routines for rotation and translation of polygons. Scaling could be added easily as well. <?php function translate_point(&$x,&$y,$angle,$about_x,$about_y,$shift_x,$shift_y) { $x -= $about_x; $y -= $about_y; $angle = ($angle / 180) * M_PI; /* math: [x2,y2] = [x, * [[cos(a),-sin(a)], y] [sin(a),cos(a)]] ==> x = x * cos(a) + y*sin(a) y = x*-sin(a) + y*cos(a) */ $new_x = $x * cos($angle) - $y * sin($angle); $new_y = $x * sin($angle) + $y * cos($angle); $x = $new_x+ $about_x + $shift_x ; $y = $new_y + $about_y + $shift_y; } function translate_poly($point_array, $angle, $about_x, $about_y,$shift_x,$shift_y) { $translated_poly = Array(); while(count($point_array) > 1) { $temp_x = array_shift($point_array); $temp_y = array_shift($point_array); translate_point($temp_x, $temp_y, $angle, $about_x, $about_y,$shift_x, $shift_y); array_push($translated_poly, $temp_x); array_push($translated_poly, $temp_y); } return $translated_poly; } ?> --was-- Here are some handy routines for rotation and translation of polygons. Scaling could be added easily as well. function translate_point(&$x,&$y,$angle,$about_x,$about_y,$shift_x,$shift_y) { $x -= $about_x; $y -= $about_y; $angle = ($angle / 180) * M_PI; /* math: [x2,y2] = [x, * [[cos(a),-sin(a)], y] [sin(a),cos(a)]] ==> x = x * cos(a) + y*sin(a) y = x*-sin(a) + y*cos(a) */ $new_x = $x * cos($angle) - $y * sin($angle); $new_y = $x * sin($angle) + $y * cos($angle); $x = $new_x+ $about_x + $shift_x ; $y = $new_y + $about_y + $shift_y; } function translate_poly($point_array, $angle, $about_x, $about_y,$shift_x,$shift_y) { $translated_poly = Array(); while(count($point_array) > 1) { $temp_x = array_shift($point_array); $temp_y = array_shift($point_array); translate_point($temp_x, $temp_y, $angle, $about_x, $about_y,$shift_x, $shift_y); array_push($translated_poly, $temp_x); array_push($translated_poly, $temp_y); } return $translated_poly; } http://php.net/manual/en/function.imagepolygon.php

« previous php.notes (#142524) next »