private?void?draw(Point?p,?Canvas?canvas)?{
????if?(!isFinished)?{
????????path?=?new?Path();
????????//將向量(0,radius)旋轉起始角度,第一個控制點根據這個旋轉后的向量計算
????????Point?t?=?new?Point(0,?this.radius).rotate(MyUtil.degrad(this.startAngle));
????????//第一個端點,為了保證圓心不會隨著radius增大而變大這里固定為3
????????Point?v1?=?new?Point(0,?3).rotate(MyUtil.degrad(this.startAngle));
????????//第二個端點
????????Point?v2?=?t.clone().rotate(MyUtil.degrad(this.angle));
????????//延長線,分別確定兩個控制點
????????Point?v3?=?t.clone().mult(this.stretchA);
????????Point?v4?=?v2.clone().mult(this.stretchB);??//clone報錯
????????//由于圓心在p點,因此,每個點要加圓心坐標點
????????v1.add(p);
????????v2.add(p);
????????v3.add(p);
????????v4.add(p);
????????path.moveTo(v1.x,?v1.y);
????????//參數分別是:第一個控制點,第二個控制點,終點
????????path.cubicTo(v3.x,?v3.y,?v4.x,?v4.y,?v2.x,?v2.y);
????}
????canvas.drawPath(path,?paint);
}
java中clone()的問題?
Flipped199
2016-09-27 17:57:06