Html5 canvas 计算织物js中的色调旋转

Html5 canvas 计算织物js中的色调旋转,html5-canvas,fabricjs,fabricjs2,Html5 Canvas,Fabricjs,Fabricjs2,如何从正常色调度值(0-360)计算fabricjs中色调旋转过滤器中的旋转参数值(-1到1) fabricjs如何计算色调旋转过滤器中的旋转值?旋转范围是从-180到180,仅适用于与其他过滤器(如对比度和亮度)从-1移动到1的simmetry 当fabricjs计算旋转时,乘以Math.PI的旋转值,使其从-1弧度移动到1弧度,使2弧度的完整旋转等于360度 由于色调旋转矩阵是用正弦和余弦构建的,正弦和余弦是角度(弧度)的周期函数,因此不必担心限制。 如果希望将“旋转”设置为2,则可以得到与

如何从正常色调度值(0-360)计算fabricjs中色调旋转过滤器中的旋转参数值(-1到1)


fabricjs如何计算色调旋转过滤器中的旋转值?

旋转范围是从-180到180,仅适用于与其他过滤器(如对比度和亮度)从-1移动到1的simmetry

当fabricjs计算旋转时,乘以
Math.PI
的旋转值,使其从-1弧度移动到1弧度,使2弧度的完整旋转等于360度

由于色调旋转矩阵是用正弦和余弦构建的,正弦和余弦是角度(弧度)的周期函数,因此不必担心限制。 如果希望将“旋转”设置为2,则可以得到与0相同的结果。旋转3将得到等的结果

calculateMatrix: function() {
  var rad = this.rotation * Math.PI, cos = Math.cos(rad), sin = Math.sin(rad),
      aThird = 1 / 3, aThirdSqtSin = Math.sqrt(aThird) * sin, OneMinusCos = 1 - cos;
  this.matrix = [
    1, 0, 0, 0, 0,
    0, 1, 0, 0, 0,
    0, 0, 1, 0, 0,
    0, 0, 0, 1, 0
  ];
  this.matrix[0] = cos + OneMinusCos / 3;
  this.matrix[1] = aThird * OneMinusCos - aThirdSqtSin;
  this.matrix[2] = aThird * OneMinusCos + aThirdSqtSin;
  this.matrix[5] = aThird * OneMinusCos + aThirdSqtSin;
  this.matrix[6] = cos + aThird * OneMinusCos;
  this.matrix[7] = aThird * OneMinusCos - aThirdSqtSin;
  this.matrix[10] = aThird * OneMinusCos - aThirdSqtSin;
  this.matrix[11] = aThird * OneMinusCos + aThirdSqtSin;
  this.matrix[12] = cos + aThird * OneMinusCos;
},
所以


应该工作

有没有办法获取对象的当前十六进制/hsl[特别是H值]值,然后将相对于当前值的旋转更改为某个预先计算的H值?什么对象?图像可以具有所有色调值,如果将它们全部更改为预定义的H,则会得到单色图像。确定。。我现在明白了。实际上,我需要在一些预定义的色样上更改产品的颜色(纯色)。用一个例子来回答一个问题,像这样更难理解。T恤变色的问题是你的?是的。。那是我的问题。。我需要对每种颜色都做同样的处理。画布中只有一个对象,即T恤图像。。单击颜色按钮时,我需要更改图像的颜色。。你能给我一些可能的解决办法吗?
filter.rotation = angleInDegree / Math.PI