[PHP]中心から角度を指定して線を引く(座標の回転)

Facebook にシェア
Delicious にシェア
LINEで送る
Pocket

360

ある座標から角度を指定して線を引くサンプルです。
線の長さを同じにして角度をすこしずつ変えていくと円のようになります。
時計の針のようなものをイメージするとわかりやすいと思います。

サンプルとして中心から 80 ピクセルの線を 45 度で描画してみます。

45

<?php
//線分の長さ
$r = 80;

//角度
$angle = 45;

//キャンバスサイズ
$width	 = 200;
$height	 = 200;

//キャンバスの中心を原点とする
$origin = array( round($width / 2), round($height / 2) );

$image = imagecreatetruecolor($width, $height);

//線の色
$color = imagecolorallocate( $image, 255, 255, 255 );

list($x, $y) = point_rotate($r, $angle);
imageline($image, $origin[0], $origin[1], $origin[0] + $x, $origin[1] + $y, $color);

header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);

function point_rotate($r, $angle){
	$angle = deg2rad($angle);
	$x = round($r * cos($angle));
	$y = round($r * sin($angle));
	return array($x, $y);
}

0 度の時は水平線で、角度が増えるごとに時計回りに回転します。
時計のように 12 時から始める場合は 90 度引いて計算します。


Similar Posts:




  • This entry was posted in PHP and tagged , . Bookmark the permalink.

    One Response to [PHP]中心から角度を指定して線を引く(座標の回転)

    1. Pingback: [PHP]レーダーチャート(クモの巣グラフ)をGDで描画する | PHP Archive

    コメントを残す

    メールアドレスが公開されることはありません。