canvas实现环形文本

这篇博客介绍了如何利用HTML5的canvas元素和JavaScript来实现环形文本的绘制。通过设置canvas的尺寸、获取2D渲染上下文,结合数学计算和文本属性,实现了自定义文本围绕圆形路径显示的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<head>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>环形文本</title>
	</head>
	<style>
		.pie {
			width: 580px;
			height: 118px;
			margin: 0 auto;
		}
	</style>

	<body>
		<div class="pie" style="background: #f44;">
			<canvas id="canvas" width="960" height="960" style="width:320px;height:320px;"></canvas>
		</div>
	</body>
	<script>
		var title = "苏哲苏成长报告";//自定义文本内容
		var canvas = document.getElementById('canvas');
		var ctx = canvas.getContext('2d');
		if(canvas.getContext) {
			var circle = {
				x: 480,
				y: 2000,
				radius: 1900
			}
			drawCircularText(circle,title, rads(260), rads(286));
		}
		//转换弧度
		function rads(x) {
			return Math.PI * x / 180;
		}
			function drawCircularText(s, string, startAngle, endAngle) {
			var radius = s.radius,
				angleDecrement = (startAngle - endAngle) / (string.length - 1),
				angle = parseFloat(startAngle),
				index = 0,
				character;
			ctx.save();
			ctx.fillStyle = 'black';
			ctx.font = '160px 微软雅黑';
			ctx.textAlign = 'right';
			ctx.textBaseline = 'middle';
			while(index < string.length) {
				character = string.charAt(index);
				ctx.save();
				ctx.beginPath();
				ctx.translate(s.x + Math.cos(angle) * radius,
					s.y + Math.sin(angle) * radius);
				ctx.rotate(Math.PI / 2 + angle);
				ctx.fillText(character, 0, 0);
				angle -= angleDecrement;
				index++;
				ctx.restore();
			}
			ctx.restore();
		}
	</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值