我有一个朋友,他要建一个网站,需求是这样的:
他希望用户能够绘制四边形(无论是逐点绘制还是创建矩形,然后通过拖动来变换每个角),然后用任何图像填充它。图像必须包含与绘制四边形相同的变换。
在 HTML5 上可以吗?也许一些带有库的JS?
感谢您的任何帮助。
注意:这是我所说的一个例子..
PS - 找到解决方案 - http://www.html5.jp/test/perspective_canvas/demo1_en.html
我有一个朋友,他要建一个网站,需求是这样的:
他希望用户能够绘制四边形(无论是逐点绘制还是创建矩形,然后通过拖动来变换每个角),然后用任何图像填充它。图像必须包含与绘制四边形相同的变换。
在 HTML5 上可以吗?也许一些带有库的JS?
感谢您的任何帮助。
注意:这是我所说的一个例子..
PS - 找到解决方案 - http://www.html5.jp/test/perspective_canvas/demo1_en.html
看看https://github.com/edankwan/PerspectiveTransform.js。我认为这正是您所需要的
对的,这是可能的。是的,您将需要使用一些 JavaScript 库。
这是一个很好的起点(接近页面末尾):
http://www.w3schools.com/html/html5_canvas.asp
有点不清楚他到底想做什么。我不知道有任何方法可以裁剪或修改(实际更改)仅使用 HTML5 和 Javascript 的图像。但仅出于显示目的,您可以使用 HTML5 和 JS 使其在网站上看起来不同。
您正在寻找的是所谓的射影变换。
点 A、B、C、D 和 A'、B'、C'、D' 通过透视关系关联,透视关系是射影变换。
Martin von Gagern 已经在这里给出了很好的解释:https ://math.stackexchange.com/a/339033/332080
基本上,您只需要这些辅助函数和一点时间来阅读 Martin 已经写过的内容:
Mat3#transform
Mat3#adjugate
Mat3#multiply