之前工作上需要做一个这个小算法,我在网上查了下基本都是矩阵平移缩放旋转等原理讲解,比较复杂,但是我这里只平移和缩放不需要用矩阵,解出下面组方程的a、b、c、d就好了

  x=ax'+b

  y=cy'+d

解这个方程需要两组对应点,下面直接给出带入求解结果:

  a = (p2.x - p1.x) / (float)(p_2.x - p_1.x);
  b = (p1.x*p_2.x - p2.x*p_1.x) / (float)(p_2.x - p_1.x);

  c = (p2.y - p1.y) / (float)(p_2.y - p_1.y);
  d = (p1.y*p_2.y - p2.y*p_1.y) / (float)(p_2.y - p_1.y);

其中p1和p2是一组对应点,p_1和p_2是另一组,另外如果加上图像旋转的话方程就变成下面:  

  x = x'a-y'b+h
  y = x'c+y'd+k

这个方程六个未知数所以需要三组点,而且这个方程直接解会比较麻烦可以用矩阵求得。

相关文章:

  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-10-13
  • 2022-12-23
  • 2022-02-01
  • 2021-09-10
猜你喜欢
  • 2021-09-19
  • 2022-01-07
  • 2021-06-03
  • 2021-11-23
  • 2022-01-02
相关资源
相似解决方案