首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fabricjs中图像填充对象的透视变换

fabricjs中图像填充对象的透视变换
EN

Stack Overflow用户
提问于 2013-10-03 20:19:18
回答 2查看 6.6K关注 0票数 5

我们有一些填充了图像源的对象。是否可以通过调整fabric js中的矩形网格位置来实现填充图像的透视变换?

我正在尝试在fabric js中实现与上面的图像类似的效果。

EN

回答 2

Stack Overflow用户

发布于 2013-10-03 23:49:17

使用FabricJS或其他2d画布库时,无法实现真正的透视失真。

Canvas的2d上下文不会进行透视转换。

大多数画布库,包括fabricJS,都使用2d上下文。

有一个canvas 3d上下文-- webGL,它可以很好地模拟透视变换。

mrdoob的threeJS库是一个很好的3d上下文库:

http://mrdoob.github.io/three.js/

添加:非透视倾斜是可能的(结果始终与原始结果平行)

在fabricJS中,您可以完全控制转换矩阵。

您可以使用该矩阵来进行仅平行倾斜。

这里有一把小提琴:http://jsfiddle.net/m1erickson/Rq7hk/

方法:

fabricObject.transformMatrix接受一个由6个元素组成的数组,每个元素表示仿射变换矩阵的各个部分。

在该矩阵中,第二个和第三个元素表示SkewY和SkewX。

因此,要创建skewY,您可以像这样创建一个rect:

代码语言:javascript
复制
var rect = new fabric.Rect({
  left: 150,
  top: 150,
  width: 75,
  height: 50,
  fill: 'green',
  angle: 0,
  padding: 10,
  transformMatrix:[1,.30,0,1,0,0]
});
票数 5
EN

Stack Overflow用户

发布于 2018-12-11 19:38:26

我找到了一个使用polygon和php-imagemagick来解决fabricjs的方法。您可以将两者结合使用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19159074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档