2.2.1以后的版本,如果想使用skew,该怎么使用3d node替代呢?

根据你的两个式子,我用matlab求解结果如下,有兴趣的同学可以自行验证:

syms skewX skewY a b
res=solve(tan(skewX)==(sin(a)*sin(b)*cos(skewY)-cos(a)*sin(skewY))/(sin(a)*sin(b)*sin(skewY)+cos(a)*cos(skewY)),sin(a)*sin(b)*sin(skewY)+cos(a)*cos(skewY)==cos(b)*cos(skewY),a,b)
若令skewY=0,则结果是:
a的解为
  -2*atan((((tan(skewX)^2 + 4)^(1/2) - 2)/tan(skewX))^(1/2))
   2*atan((((tan(skewX)^2 + 4)^(1/2) + 2)/tan(skewX))^(1/2))
  -2*atan((((tan(skewX)^2 + 4)^(1/2) + 2)/tan(skewX))^(1/2))
   2*atan((-((tan(skewX)^2 + 4)^(1/2) - 2)/tan(skewX))^(1/2))
  -2*atan((-((tan(skewX)^2 + 4)^(1/2) - 2)/tan(skewX))^(1/2))
b的解为
  -2*atan((((tan(skewX)^2 + 4)^(1/2) - 2)/tan(skewX))^(1/2))
  -2*atan((((tan(skewX)^2 + 4)^(1/2) + 2)/tan(skewX))^(1/2))
   2*atan((((tan(skewX)^2 + 4)^(1/2) + 2)/tan(skewX))^(1/2))
  -2*atan((-((tan(skewX)^2 + 4)^(1/2) - 2)/tan(skewX))^(1/2))
   2*atan((-((tan(skewX)^2 + 4)^(1/2) - 2)/tan(skewX))^(1/2))
(第n行的a和第n行的b为一个解,即该方程共有5个解,看起来与之前二楼的计算过程差不多)
若没有令skewY为0,则结果非常长:
a的解为
  -2*atan(((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) - 1))/(tan(skewY/2) + 1))
   2*atan(((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) - 1))/(tan(skewY/2) + 1))
   2*atan(((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) + 1))/(tan(skewY/2) - 1))
  -2*atan(((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) + 1))/(tan(skewY/2) - 1))
  2*atan(((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) + 1))/(tan(skewY/2) - 1))
 -2*atan(((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) + 1))/(tan(skewY/2) - 1))
 -2*atan(((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) - 1))/(tan(skewY/2) + 1))
  2*atan(((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2)*(tan(skewY/2) - 1))/(tan(skewY/2) + 1))
b的解为
  -2*atan((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
   2*atan((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
  -2*atan((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
   2*atan((((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
 -2*atan((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
  2*atan((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) - 2*tan(skewY/2)*tan(skewX) + 2*tan(skewY/2)^4 + 2*tan(skewY/2)^3*tan(skewX) + 2)/(2*tan(skewY/2) + tan(skewX) + 2*tan(skewY/2)*tan(skewX) + 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 - 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
 -2*atan((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))
  2*atan((-((tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + tan(skewY/2)^2*(tan(skewX)^2 - 2*tan(skewY/2)^2*tan(skewX)^2 + tan(skewY/2)^4*tan(skewX)^2 - 4*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 4*tan(skewY/2)^4 + 4*tan(skewY/2)^3*tan(skewX) + 4)^(1/2) + 2*tan(skewY/2)*tan(skewX) - 2*tan(skewY/2)^4 - 2*tan(skewY/2)^3*tan(skewX) - 2)/(2*tan(skewY/2) + tan(skewX) - 2*tan(skewY/2)*tan(skewX) - 4*tan(skewY/2)^2 + 2*tan(skewY/2)^3 + 2*tan(skewY/2)^3*tan(skewX) - tan(skewY/2)^4*tan(skewX)))^(1/2))

二维的旋转加缩放是不能变形的,但是三维旋转和缩放投影到二维平面是可以的。你拿一张纸,在二维平面怎样旋转都不会变形,但是在三维情况下,比如你侧着看,它就不是长方形了。

1赞

有没有大佬推出了SkewY的式子,搞了一上午没推导出来

我后面发现,其实,2D的话可以用shader做的。。。不过我们已经放弃这个需求了。
比如skewY就是uv.x < 0.5 ===> uv.y -= a,uv > 0.5 ===> uv.y += a,a根据倾斜度计算,好像可以实现