在Android中颤芬,繪制圖形有關(guān)的類定義在android.graphics包下悲幅,本系列介紹Graphics2D涉及到的常用類,并介紹常見的繪圖方法.
一站蝠、Point類汰具、PointF類介紹
point翻譯成中文為“點”,在Graphics2D中菱魔,Point留荔、PointF類是一種最簡單的結(jié)構(gòu),代表一個“點”澜倦,這兩個類都實現(xiàn)了Parcelable接口聚蝶,支持序列化與反序列化.
二、Point類
1藻治、Point類中兩個成員變量:
public int x;
public int y;
代表點的x坐標(biāo)和y坐標(biāo).
2碘勉、圖形坐標(biāo)系
和數(shù)學(xué)中平面直角坐標(biāo)系不同的是,Android中的圖形坐標(biāo)系像下面這樣:
x軸:向右為正方向栋艳,向左為負(fù)方向
y軸:向下為正方向,向上為負(fù)方向
坐標(biāo)原點在左上角(屏幕左上角).
所以在屏幕內(nèi)的點x句各、y都大于0
當(dāng)x或者y有一個為負(fù)數(shù)時吸占,這個點就在屏幕之外
3晴叨、構(gòu)造方法
public Point() {}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public Point(Point src) {
this.x = src.x;
this.y = src.y;
}
可以通過提供一個(x,y)坐標(biāo)初始化矾屯,也可以通過另外一個Point 對象初始化.
4兼蕊、改變坐標(biāo)
/**
* Set the point's x and y coordinates
*/
public void set(int x, int y) {
this.x = x;
this.y = y;
}
/**
* Negate the point's coordinates
*/
public final void negate() {
x = -x;
y = -y;
}
/**
* Offset the point's coordinates by dx, dy
*/
public final void offset(int dx, int dy) {
x += dx;
y += dy;
}
set()方法直接為x、y賦值
negate()方法將x件蚕、y取反(相當(dāng)于以原點為中心孙技,旋轉(zhuǎn)了180°+k×360°,k為整數(shù))
offset()方法偏移x排作、y值牵啦, dx與 dy的正負(fù)代表偏移的方向
三、PointF類
PointF類和Point類差不多妄痪,最大的不同就是成員變量x哈雏、y的數(shù)據(jù)類型不是int而是float,這也是類名加了“F”的原因.
點到坐標(biāo)原點的距離
/**
* Return the euclidian distance from (0,0) to the point
*/
public final float length() {
return length(x, y);
}
/**
* Returns the euclidian distance from (0,0) to (x,y)
*/
public static float length(float x, float y) {
return (float) Math.hypot(x, y);
}
相對于Point類衫生,PointF類增加了兩個方法用來計算點到原點的距離裳瘪,一個靜態(tài)的,一個非靜態(tài)的罪针,雖然最終計算方法都一樣.