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

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:




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です