javascript - 重新对齐 Javascript/Canvas 绘图?

标签 javascript html canvas

所以我有一张别人给我的半复杂 Canvas 。它垂直绘制图像(即自上而下)。让我们假设它是一个具有面部特征的简笔画。

这是在 Javascript 和 Canvas 中完成的。即:ctx.beginPath()ctx.moveTo(x,y)ctx.lineTo(1,1)

我希望简笔画朝某个点 (x,y) 移动,并在朝该方向移动时面向该方向。例如,如果 x,y 位于右下角附近,我希望简笔画的方向能够使其脚在移动时面向右下角。

主要问题是,在知道我有一张“硬编码”绘图(在本例中为火柴人)的情况下,我将如何执行此操作(即更改火柴人)?

最佳答案

您可以将接收到的图像渲染在单独的 Canvas 上(不需要显示),并使用 ctx.canvas.toDataURL() 将其转换为图像。然后,您可以将生成的图像嵌入到 Canvas 中并更轻松地对其应用变换。

我在对该问题的评论中提到了这一点,但这听起来很有趣,所以我实现了概念验证。

var canvasObject = function(ctx) {
  ctx.beginPath();
  ctx.moveTo(0,0);
  ctx.arc(30,30,15,0,2*Math.PI);
  ctx.fillStyle='red';
  ctx.fill();
  return ctx;
}

var myCtx = document.querySelector('canvas').getContext('2d');
var objCtx = document.createElement('canvas').getContext('2d');
var renderedObjUrl = canvasObject(objCtx).canvas.toDataURL();
var renderedObj = document.createElement('img');
renderedObj.setAttribute('src', renderedObjUrl);

myCtx.drawImage(renderedObj, 30, 10);
<canvas id="myCanvas" width="600" height="400"></canvas>

关于javascript - 重新对齐 Javascript/Canvas 绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385813/

相关文章:

javascript - 如何使 HTML5 Canvas 上的图像垂直和水平重复?

javascript - 使用 fabric.js 的镜像克隆对象位置问题

javascript - GLGE API setRot/setRotX 不起作用

javascript - 如何使用 JavaScript 将带有参数的 URL 字符串拆分为数组

javascript - 我不希望我的 cookie 使用 javascript 的特定路径

jQuery 下拉菜单 - SlideToggle

javascript - 推荐一个HTML5/Javascript的开发环境?

javascript - 裁剪图标图像

javascript - HTML,将 iframe src 设置为 JavaScript 变量

javascript - 将类添加到 Canvas 元素 HTML5 和 CreateJS