html 透明的圆形,Javascript HTML5 Canvas绘制透明圆圈

本文介绍如何使用JavaScript在canvas上实现从mousedown到mouseup的圆圈绘制,仅在mouseup时保留圆圈,避免多余圆圈残留。通过putPoint, drawPoint和stopPoint函数控制圆圈的绘制和清除过程。

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

我需要有一个函数在画布上绘制几个圆圈,从mousedown at center = x,y开始,并将鼠标拖动到deltaX,deltaY,从而为每个圆圈创建半径r.圆圈无法填充(需要它们透明),因此用户可以清楚地看到圆圈截取的位置.我的当前代码在拖动鼠标的同时绘制圆圈,这是预期的,但它也留下了那些额外的圆圈.我只需要在mouseup上留下圆圈.任何帮助表示赞赏.谢谢 :).

var canvas=document.getElementById('canvas');

var context=canvas.getContext('2d');

var radius=50;

var nStartX = 0;

var nStartY = 0;

var bIsDrawing = false;

var putPoint = function(e){

nStartX = e.clientX;nStartY = e.clientY;

bIsDrawing = true;

radius = 0;

}

var drawPoint = function(e){

if(!bIsDrawing)

return;

var nDeltaX = nStartX - e.clientX;

var nDeltaY = nStartY - e.clientY;

radius = Math.sqrt(nDeltaX * nDeltaX + nDeltaY * nDeltaY)

context.beginPath();

context.arc(nStartX, nStartY, radius, 0, Math.PI*2);

context.strokeStyle="#000000";

//context.fillStyle="#FFFFFF";

context.fillStyle = 'rgba(0, 0, 0, 0)';

context.stroke();

context.fill();

}

var stopPoint = function(e){

//context.clip();

//context.clearRect(0, 0, canvas.width, canvas.height);

bIsDrawing = false;

}

canvas.addEventListener('mousedown',putPoint);

canvas.addEventListener('mousemove',drawPoint);

canvas.addEventListener('mouseup',stopPoint);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值