我正在使用这个脚本,它声称实现了规范中描述的matrix3d操作,但该脚本缺少矩阵透视操作,因此我"捣鼓"了一些东西,但我不确定它是否准确或正确。
我的问题是,如果
我也不确定
更新: 我发现了另一个透视函数的实现(请参见下文),并创建了一个fiddle来演示它也无法正常工作。
为什么这两个值不同呢?谢谢您的回复。
// the perspective matrix to multiply with
CSSMatrix.Perspective = function(x, y, z){
var m = new CSSMatrix();
m.m13 = x;
m.m23 = y;
m.m33 = z;
return m;
};
以及使用这个矩阵的方法
// myMatrix.perspective(x,y,z); to apply a perspective matrix
CSSMatrix.prototype.perspective = function(x, y, z){
if (y == null) y = 0;
if (z == null) z = 0;
return CSSMatrix.multiply(this, CSSMatrix.Perspective(x, y, z));
};
我的问题是,如果
y
和z
为undefined
,应该使用什么值?它会像旋转一样使用x
作为所有其他轴,还是像上面的代码中一样使用0(零)?我也不确定
CSSMatrix.Perspective
矩阵是否按规范正确编写并实现到CSSMatrix
原型中。更新: 我发现了另一个透视函数的实现(请参见下文),并创建了一个fiddle来演示它也无法正常工作。
CSSMatrix.prototype.perspective = function(d){
return CSSMatrix.multiply(this, CSSMatrix.Perspective(d));
};
CSSMatrix.Perspective = function(d){
var m = new CSSMatrix();
m.m43 = -1/d;
return m;
};
为什么这两个值不同呢?谢谢您的回复。