【发布时间】:2019-12-29 14:06:54
【问题描述】:
这就是我通过按下/释放鼠标按钮在画布中绘制线条的方式。但这并不完全是我试图得到的:通过按下鼠标按钮,直线的起点正在设置,终点将跟随鼠标光标。但这条线应该始终是一条直线——而不是像现在这样画一些曲线。通过释放鼠标按钮,线条完成/固定。
这样,用户应该能够以任何方向/旋转在画布上的任何位置绘制直线。按鼠标键为起点,松开鼠标为直线的终点。
$(function() {
var letsdraw = false;
var theCanvas = document.getElementById('paint');
var ctx = theCanvas.getContext('2d');
theCanvas.width = 420;
theCanvas.height = 300;
var canvasOffset = $('#paint').offset();
$('#paint').mousemove(function(e) {
if (letsdraw === true) {
ctx.lineTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
ctx.stroke();
}
});
$('#paint').mousedown(function() {
letsdraw = true;
ctx.strokeStyle = 'blue';
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(e.pageX - canvasOffset.left, e.pageY - canvasOffset.top);
});
$(window).mouseup(function() {
letsdraw = false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<canvas id="paint"></canvas>
【问题讨论】:
标签: javascript jquery canvas