如何让用户仅使用背景图像在x轴上的画布上画一条线?

阿德尔坎索

我有一个包含图像的画布,我想让用户仅在x轴上在其上绘制线条,并且不清除背景图像。

var lala = document.getElementById('demo');
var canvas = lala,
  ctx = canvas.getContext('2d'),
  img = new Image;
img.onload = start;
img.src = 'https://via.placeholder.com/300';

function start() {
  ctx.drawImage(img, 0, 0, demo.width, demo.height);
}

function drawOnX() {

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<canvas id="demo" width=300 height=300></canvas>
<button onclick = "drawOnX();"> start drawing </button>

易卜拉欣·马尔里尔

只需使用moveTo(x, y)lineTo(x, y)定义路径,然后使用stroke()绘制它,就可以分别使用lineWidthstrokeStyle指定线条的粗细和样式。

var lala = document.getElementById('demo');
var canvas = lala,
  ctx = canvas.getContext('2d'),
  img = new Image;
img.onload = start;
img.src = 'https://via.placeholder.com/300';

function start() {
  ctx.drawImage(img, 0, 0, demo.width, demo.height);
}

function drawOnX() {
  ctx.moveTo(0, 150);
  ctx.lineTo(300, 150);

  ctx.lineWidth = 3;
  ctx.strokeStyle = "red";

  ctx.stroke();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<canvas id="demo" width=300 height=300></canvas>
<button onclick = "drawOnX();"> start drawing </button>

在调用之前,您可以进行多次呼叫,moveTolineTo绘制复杂的路径或形状(例如,星形)stroke


或者,如果您只对水平线感兴趣,则可以使用fillRect(x, y, width, height)绘制长的微小矩形来模仿一条线(宽度为画布的全宽,高度为线的粗细),则可以使用fillStyle在这种情况下,可以对矩形进行样式设置,如下所示:

var lala = document.getElementById('demo');
var canvas = lala,
  ctx = canvas.getContext('2d'),
  img = new Image;
img.onload = start;
img.src = 'https://via.placeholder.com/300';

function start() {
  ctx.drawImage(img, 0, 0, demo.width, demo.height);
}

function drawOnX() {
  ctx.fillStyle = "red";

  ctx.fillRect(0, 149, 300, 2);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<canvas id="demo" width=300 height=300></canvas>
<button onclick = "drawOnX();"> start drawing </button>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在画布上用背景图像画一条线

来自分类Dev

如何在画布上用背景图像画一条线

来自分类Dev

如何在画布上画一条线?

来自分类Dev

如何使用fabric.js在画布上画一条线

来自分类Dev

在画布上画一条线

来自分类Dev

在画布上画一条线

来自分类Dev

在Java中的图像上画一条线

来自分类Dev

如何使用Geotools在shapefile上画一条线

来自分类Dev

如何使用OpenCV在路缘上画一条线?

来自分类Dev

如何使用点在QPixmap上画一条线

来自分类Dev

迅速在NSView上画一条线

来自分类Dev

在pyplot中的图例上画一条线

来自分类Dev

在图表上画一条线

来自分类Dev

如何在FMX画布上的Delphi中画一条线

来自分类Dev

在图像的标签上画一条线并计算距离

来自分类Dev

OpenGL:在另一条线上画一条线

来自分类Dev

如何在gmaps上画一条线和一个框?

来自分类Dev

如何在Qt5中的小部件上画一条线

来自分类Dev

如何在拉撒路表单上画一条线?

来自分类Dev

如何在Java中的事件处理程序中在JLabel上画一条线?

来自分类Dev

如何用css画一条线并在其上显示文本或图像

来自分类Dev

在画布上的点周围重画一条线

来自分类Dev

为什么我不能使用角度代码在此D3.js上画一条线?

来自分类Dev

使用极坐标(epsg:3995)投影和ggspatial时如何在ggplot中在第66个平行北上画一条线

来自分类Dev

在dgrid3d和pm3d上画一条线

来自分类Dev

在matplotlib中的3D图上画一条线

来自分类Dev

我可以在海拔高度的地图上画一条线吗?

来自分类Dev

在matplotlib中的3D图上画一条线

来自分类Dev

我想在显示相机上画一条线(相机预览)