php绘制时钟

这篇博客介绍了如何使用PHP的GD库来绘制时钟,包括定义旋转和平移变换函数,以及利用imagefilledpolygon()和imageline()函数绘制时针、分针和表盘刻度线。示例中选择了10点10分作为展示时间,通过逆时针旋转时针60度和顺时针旋转分针60度来呈现效果。
摘要由CSDN通过智能技术生成

今天用php写了点东西,其中一个就是画时钟,记下来分享下。

php的gd库里用来绘图还是很不错的。绘制时针分针使用imagefilledpolygon(),绘制表盘刻度线用imageline(),关键在于确定那些点的位置。

没仔细查资料,对php也不太了解,不知道有没有矩阵变换之类的东西,还是自己写吧。

先定义一个平面点集的旋转与平移变换函数,传入参数为大小是偶数的array,奇数位为x,偶数位为y,返回变换后的array。这个在绘制时针分针和表盘刻度的时候很有用。

function transform_points_2d($points, $offset, $angle)
{
	$result = array();
	$size = sizeof($points);
	for ($i=0; $i<$size; $i+=2) {
		$result[$i] = $offset[0] + $points[$i] * cos($angle) + $points[$i+1] * sin($angle);
		$result[$i+1] = $offset[1] -$points[$i] * sin($angle) + $points[$i+1] * cos($angle);
	}
	
	//print_r($result);
	return $result;
}

假设时针分针都是三角形,考虑简单的情况,都指向上方。然后用上面的函数进行变换就可以得到任意位置的顶点集了。

	$hour_points0 = array(
			7, 8,
			-7, 8,
			0, -40
		);
	
	$m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值