HTML5 canvas drawImage 使用点?

标签 html canvas html5-canvas

我需要使用 4 个点绘制图像。我将这 4 个点存储在一个数组中,这些位置会发生变化。现在我需要绘制一个图像来反射(reflect)这些位置。 context.drawImage 只接受 1 个位置。

应该是这样的,4个位置:

x,y----------x,y
 |            |
 |            |
 |            |
 |            |
 |            |
x,y----------x,y

最佳答案

Quad Warping 是你所需要的,没有复杂的 3D

您要求将矩形图像渲染为可能的非矩形四边形。

正确的做法是计算变换矩阵,不需要渲染真正的 3D 内容。这是通过计算单应矩阵完成的。为此,您需要了解变换矩阵并实现一些代码来求解某些方程。

这个过程很好理解,需要原始的四个坐标和目标的四个点你都有,所以只需要一个计算变换矩阵的过程。该矩阵基本上是通过Gauss-Jordan消元法计算得到的。

Check this关于矩阵求解器和一般程序。一旦你理解了转换,做起来就变得微不足道了。还有 check this to understand what a homography is .和 here it's explained how it's calculated ,带有 javascript 和 CSS 示例。

演示

Here's an awesome demo与来源和解释。 Quad Warping in Javascript

关于HTML5 canvas drawImage 使用点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660521/

相关文章:

javascript - FabricJS Canvas drawImage 不显示图像

javascript - Canvas 背景图像未显示在打开的网页上

HTML - 如何使图像填充各种大小的表格单元格

html - 用响应式模板中的文本框替换下拉菜单

javascript - 在 JavaScript 中绘制图像( Canvas )

javascript - HTML5 删除 Canvas 中先前绘制的对象

javascript - 放大和缩小时如何避免 Canvas 元素中圆形标记的不必要的填充不透明度变化?

html - td 中的多行

javascript - 使用 css 删除行后表格中断

Javascript循环选择所有矩形