This commit is contained in:
GcsSloop
2016-08-28 02:27:41 +08:00
parent 274ef10bd4
commit 0d195b3973

View File

@@ -476,7 +476,7 @@ public class MatrixSetPolyToPolyTest extends View {
我们知道`pointCount`支持点的个数为0到4个四个一般指图形的四个角属于最常用的一种情形但前面几种是什么情况呢 我们知道`pointCount`支持点的个数为0到4个四个一般指图形的四个角属于最常用的一种情形但前面几种是什么情况呢
> 发布此文的时候之所以没有讲解0到3的情况是因为前面的几种情况在实际开发中基本不会出现,除非是极其特殊的情况,~~才不是因为偷懒呢,哼。~~ > 发布此文的时候之所以没有讲解0到3的情况是因为前面的几种情况在实际开发中很少会出现, ~~才不是因为偷懒呢,哼。~~
@@ -494,6 +494,42 @@ public class MatrixSetPolyToPolyTest extends View {
**为什么说前面几种情况在实际开发中很少出现?**
作为开发人员,写出来的代码出了要让机器"看懂",没有歧义之外,最重要的还是让人看懂,以方便后期的维护修改,从上边的表格中可以看出,前面的几种种情况都可以有更直观的替代方法,只有四个参数的情况下的特殊形变是没有替代方法的。
**pointCount为0**
pointCount为0和`reset`是等价的而不是保持matrix不变在最底层的实现中可以看到这样的代码
```c++
if (0 == count) {
this->reset();
return true;
}
```
**pointCount为1**
pointCount为0和`translate`是等价的,在最底层的实现中可以看到这样的代码:
```c++
if (1 == count) {
this->setTranslate(dst[0].fX - src[0].fX, dst[0].fY - src[0].fY);
return true;
}
```
> 平移的距离是dst - src.
魔力不足,正在蓄力中... 魔力不足,正在蓄力中...