使用HTML5绘制一个正反面的硬币
在HTML5中,你可以使用<canvas>元素和JavaScript来绘制一个正反面的硬币。以下是一个简单的示例,展示了如何绘制一个正面和反面的硬币。
首先,你需要在HTML中创建一个<canvas>元素:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>硬币绘制</title>
    <style>
        canvas {
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <canvas id="coinCanvas" width="200" height="200"></canvas>
    <button onclick="flipCoin()">翻转硬币</button>
    <script src="script.js"></script>
</body>
</html>
然后,在script.js文件中,你可以使用JavaScript来绘制硬币的正面和反面,并添加一个函数来翻转硬币:
const canvas = document.getElementById('coinCanvas');
const ctx = canvas.getContext('2d');
let isFront = true; // 初始状态为正面
// 绘制硬币正面
function drawFront() {
    ctx.clearRect(0, 0, canvas.width, canvas.height); // 清除画布
    ctx.beginPath();
    ctx.arc(100, 100, 100, 0, Math.PI * 2); // 绘制圆形
    ctx.fillStyle = 'goldenrod'; // 设置填充颜色为金色
    ctx.fill(); // 填充圆形
    ctx.lineWidth = 5; // 设置线条宽度
    ctx.strokeStyle = 'darkgoldenrod'; // 设置线条颜色为深金色
    ctx.stroke(); // 绘制圆形轮廓
    ctx.font = '30px Arial'; // 设置字体样式和大小
    ctx.textAlign = 'center'; // 设置文本对齐方式
    ctx.textBaseline = 'middle'; // 设置文本基线
    ctx.fillStyle = 'white'; // 设置文本颜色为白色
    ctx.fillText('1', 100, 100); // 在硬币上绘制数字1
}
// 绘制硬币反面
function drawBack() {
    ctx.clearRect(0, 0, canvas.width, canvas.height); // 清除画布
    ctx.beginPath();
    ctx.arc(100, 100, 100, 0, Math.PI * 2); // 绘制圆形
    ctx.fillStyle = 'silver'; // 设置填充颜色为银色
    ctx.fill(); // 填充圆形
    ctx.lineWidth = 5; // 设置线条宽度
    ctx.strokeStyle = 'darkgray'; // 设置线条颜色为深灰色
    ctx.stroke(); // 绘制圆形轮廓
    ctx.font = '20px Arial'; // 设置字体样式和大小
    ctx.textAlign = 'center'; // 设置文本对齐方式
    ctx.textBaseline = 'middle'; // 设置文本基线
    ctx.fillStyle = 'black'; // 设置文本颜色为黑色
    const text = '国徽'; // 假设反面是国徽,这里用文字代替
    const textWidth = ctx.measureText(text).width; // 测量文本宽度
    ctx.fillText(text, 100 - textWidth / 2, 110); // 在硬币上绘制文本,居中显示
}
// 翻转硬币
function flipCoin() {
    isFront = !isFront; // 切换正反面状态
    if (isFront) {
        drawFront(); // 如果是正面,则绘制正面
    } else {
        drawBack(); // 如果是反面,则绘制反面
    }
}
// 初始绘制正面硬币
drawFront();
这个示例中,我们创建了一个<canvas>元素,并在JavaScript中定义了两个函数drawFront和drawBack来分别绘制硬币的正面和反面。我们还定义了一个flipCoin函数来切换硬币的正反面,并重新绘制。最后,我们在页面加载时初始绘制了正面硬币。
                    
                
                
            
        
浙公网安备 33010602011771号