ある点を中心にして座標を回転させる関数です。
引数は ( 軸 x1, 軸 y1, x2, y2, 角度, 整数化, 時計回り ) です。
座標は通常反時計回りに回転するので、逆回転させる場合は第 7 引数を true にして下さい。
<?php print_r( point_rotate(50, 50, 100, 100, 30, true) ); function point_rotate($x1, $y1, $x2, $y2, $angle, $round = false, $clockwise = false){ if($clockwise) $angle = -1 * $angle; $r = sqrt( pow($x2 - $x1, 2) + pow($y2 - $y1, 2)); $angle = deg2rad($angle); $x = ($x2 - $x1) * cos($angle) - ($y2 - $y1) * sin($angle); $y = ($x2 - $x1) * sin($angle) + ($y2 - $y1) * cos($angle); if($round){ return array(round($x1 + $x), round($y1 + $y)); } else { return array($x1 + $x, $y1 + $y); } }
Similar Posts:
- [PHP]中心から角度を指定して線を引く(座標の回転)
- [PHP]レーダーチャート(クモの巣グラフ)をGDで描画する
- [HTML5+JS+Canvas, PHP]アナログ時計の作り方
- [AS3.0]ある座標を中心に回転させる
- [PHP]GDでアンチエイリアスのかかった綺麗な楕円を描く
- [PHP]GDで折れ線グラフを描画する(改訂版)
- [PHP]三次元空間での2点を結ぶ線分の中点
- [PHP]複数の画像をランダムに敷き詰めて一枚の画像に合成