Update
This commit is contained in:
@@ -244,7 +244,7 @@ close方法用于连接当前最后一个点和最初的一个点(如果两个
|
||||
Direction的意思是 方向,趋势。 点进去看一下会发现Direction是一个枚举(Enum)类型,里面只有两个枚举常量,如下:
|
||||
|
||||
类型 | 解释 | 翻译
|
||||
--- | --- | ---
|
||||
-----|-------------------|-------
|
||||
CW | clockwise | 顺时针
|
||||
CCW | counter-clockwise | 逆时针
|
||||
|
||||
@@ -253,7 +253,7 @@ CCW | counter-clockwise | 逆时针
|
||||
**稍安勿躁,┬─┬ ノ( ' - 'ノ) {摆好摆好) 既然存在肯定是有用的,先偷偷剧透一下这个顺时针和逆时针的作用。**
|
||||
|
||||
序号 | 作用
|
||||
--- | ---
|
||||
-----|---------------------------------------------------
|
||||
1 | 在添加图形时确定闭合顺序(各个点的记录顺序)
|
||||
2 | 对图形的渲染结果有影响(是判断图形渲染的重要条件)
|
||||
|
||||
@@ -281,7 +281,6 @@ CCW | counter-clockwise | 逆时针
|
||||
|
||||
```
|
||||
canvas.translate(mWidth / 2, mHeight / 2); // 移动坐标系到屏幕中心
|
||||
canvas.scale(1,-1); // <-- 注意 scale特殊运用:翻转y坐标轴
|
||||
|
||||
Path path = new Path();
|
||||
|
||||
@@ -292,12 +291,7 @@ CCW | counter-clockwise | 逆时针
|
||||
canvas.drawPath(path,mPaint);
|
||||
```
|
||||
|
||||
<img src="http://ww3.sinaimg.cn/large/005Xtdi2jw1f1g5ec62kuj30u01hc3zv.jpg" width = "270" height = "480"/>
|
||||
|
||||
**请注意:为了演示方便,本次将坐标系调整到了和我们常见的数学坐标系相同,请留意代码的变动,否则效果刚好是反着的,会更加难以理解。**
|
||||
|
||||
> 如果你对坐标系有疑问,请参考之前文章 [坐标系](https://github.com/GcsSloop/AndroidNote/blob/master/%E9%97%AE%E9%A2%98/%E5%9D%90%E6%A0%87%E7%B3%BB/%E5%9D%90%E6%A0%87%E7%B3%BB.md) <br/>
|
||||
>如果你对翻转坐标轴有疑问,请参考之前文章 [Canvas(2)画布操作](https://github.com/GcsSloop/AndroidNote/blob/master/%E9%97%AE%E9%A2%98/Canvas/Canvas(2).md)
|
||||
<img src="http://ww3.sinaimg.cn/large/005Xtdi2jw1f4bg7ly3n7j30u01hc78a.jpg" width = "270" height = "480"/>
|
||||
|
||||
可以明显看到,图形发生了奇怪的变化。为何会如此呢?
|
||||
|
||||
@@ -317,7 +311,6 @@ CCW | counter-clockwise | 逆时针
|
||||
|
||||
``` java
|
||||
canvas.translate(mWidth / 2, mHeight / 2); // 移动坐标系到屏幕中心
|
||||
canvas.scale(1,-1); // <-- 注意 翻转y坐标轴
|
||||
|
||||
Path path = new Path();
|
||||
|
||||
@@ -328,13 +321,11 @@ CCW | counter-clockwise | 逆时针
|
||||
canvas.drawPath(path,mPaint);
|
||||
```
|
||||
|
||||
<img src="http://ww4.sinaimg.cn/large/005Xtdi2jw1f1gamc02c6j30u01hcabi.jpg" width = "270" height = "480"/>
|
||||
<img src="http://ww2.sinaimg.cn/large/005Xtdi2jw1f4bgkdk8efj30u01hctcu.jpg" width = "270" height = "480"/>
|
||||
|
||||
通过验证发现,发现结果和我们猜想的一样,但是还有一个潜藏的问题不晓得大家可否注意到。**为啥A点总是排在第一个呢?长得漂亮还是咋地?**
|
||||
通过验证发现,发现结果和我们猜想的一样,但是还有一个潜藏的问题不晓得大家可否注意到。**我们用两个点的坐标确定了一个矩形,矩形起始点(A)就是我们指定的第一个点的坐标。**
|
||||
|
||||
我们前面说过,确定一个矩形只需要知道对角线的两个点就足够了,我们实际上是通过 C(-200,-200) 和 A(200,200) 来确定这个矩形的,A点就是我们参数中的第二个点,经过测试可以发现参数中指定的第二个点始终是记录中的第一个点。至于为啥参数中第二个点作为记录的第一个点,可能就是当时设计这个的工程师一拍脑门决定的,也可能是这样设计算法比较简单。这个我们无需深究。
|
||||
|
||||
**不过,需要注意的是,交换坐标点的顺序可能就会影响到某些绘制内容哦,例如上面的例子,你可以尝试交换两个坐标点,或者指定另外两个点来作为参数,虽然指定的是同一个矩形,但实际绘制出来是不同的哦。**
|
||||
**需要注意的是,交换坐标点的顺序可能就会影响到某些绘制内容哦,例如上面的例子,你可以尝试交换两个坐标点,或者指定另外两个点来作为参数,虽然指定的是同一个矩形,但实际绘制出来是不同的哦。**
|
||||
|
||||
**参数中点的顺序很重要!<br/>参数中点的顺序很重要!<br/>参数中点的顺序很重要!<br/>**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user