Canvas绘制圆形

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body style="margin:0px;">
    <canvas id="myCanvas" width="200" height="100" style="border:1px solid;" οnmοusemοve="cnvs_getCoordinates(event)"
            οnmοuseοut="cnvs_clearCoordinates()"></canvas>
    <div id="xycoordinates"></div>


</body>
</html>
<script type="text/javascript">
    function cnvs_getCoordinates(e) {
        x = e.clientX;
        y = e.clientY;
        document.getElementById("xycoordinates").innerHTML = "Coordinates: (" + x + "," + y + ")";
    }
    function cnvs_clearCoordinates() {
        document.getElementById("xycoordinates").innerHTML = "";
    }
    var c = document.getElementById("myCanvas");
    var cxt = c.getContext("2d");
    cxt.moveTo(10, 10);
    cxt.lineTo(150, 50);
    cxt.lineTo(10, 50);
    cxt.lineTo(10, 10);
    cxt.stroke();
    cxt.fillStyle = "Blue";
    cxt.beginPath();
    //context.arc(x, y, r, sAngle, eAngle, counterclockwise);
    //参数 描述
    //x 圆的中心的 x 坐标。
    //y 圆的中心的 y 坐标。
    //r 圆的半径。
    //sAngle 起始角,以弧度计。(弧的圆形的三点钟位置是 0 度)。
    //eAngle 结束角,以弧度计。
    //counterclockwise 可选。规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。
    cxt.arc(70, 18, 25, 0, Math.PI*2, false);
    cxt.closePath();
    cxt.fill();
</script>
Canvas是HTML5提供的一种绘图API,可以用来动态地在网页上创建图形。如果你想在canvas绘制一个圆形并让它旋转,你可以按照以下步骤操作: 1. 首先,你需要创建一个`<canvas>`元素,并获取它的2D渲染上下文(`2d context`),例如: ```javascript var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); ``` 2. 创建一个圆形路径。你可以使用`arc()`方法,传入圆心坐标、半径、起始角度(0通常代表从正上方开始)和结束角度(顺时针方向),加上当前的画布旋转角度: ```javascript var centerX = canvas.width / 2; var centerY = canvas.height / 2; var radius = 50; var rotationAngle = 0; // 旋转角度 ctx.beginPath(); ctx.arc(centerX, centerY, radius, 0, Math.PI * 2, false); ``` 3. 绘制圆形并应用旋转。每次更新动画,你可以调整`rotationAngle`并调用`save()`和`rotate()`方法来保存原始状态并旋转: ```javascript // 更新旋转角度 rotationAngle += 0.1; // 可以设置成更小的值,如每帧增加一定的角度 // 保存当前画布状态 ctx.save(); // 应用旋转 ctx.translate(centerX, centerY); // 移动到圆心位置 ctx.rotate(rotationAngle); // 旋转 ctx.drawImage(circleShape, -radius, -radius); // 绘制圆形(假设circleShape是一个已经创建好的圆形图像) // 恢复到之前的非旋转状态 ctx.restore(); ``` 4. 如果需要持续动画效果,可以在循环里不断更新和重绘。记得清除旧的形状(如果不是循环绘制),避免覆盖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值