談談Android中的Rect類

2021-07-15 18:56:31 字數 746 閱讀 2102

最近在工作中遇到了一些問題,總結下來就是android中rect這個類造成的。不得不說,不知道android sdk的開發人員是怎麼想的, 這個類設計的太奇葩了。首先介紹一下rect類:rect類主要用於表示座標系中的一塊矩形區域,並可以對其做一些簡單操作。這塊矩形區域,需要用左上右下兩個座標點表示(left,top,right,bottom),你也可以獲取乙個rect例項的width和height。就在這裡,奇葩的事情來了,作為乙個有一點經驗的做影象或者矩陣運算或者程式設計的程式設計師來說,大家的共識是,如果乙個矩陣是mxn的,也就是m行n列,那麼行號是[0,m-1],列號是[0,n-1]。可是奇葩的rect類並不是這樣的!如果你這麼宣告乙個rect類:

rect rect=newrect(100,50,300,500);

那麼右下角(300,500)其實是不在這個矩形裡面的,但是左上角(100,50)在,也就是說,這個矩形實際表示的區域是:(100,50,299,499)。另外,rect計算出的height和width倒是對的。所以,在此告誡各位程式設計師,在涉及rect運算的時候,盡量不要使用它的右下角左邊,即right和bottom。因為他們是錯的。當然,在你呼叫android自己的函式時,是可以使用的,因為android裡面一直保持這麼奇葩的思維。

Android中Rect和RectF的區別與聯絡

android中rect和rectf的區別與聯絡 1.聯絡 都是用於表示座標系中的一塊矩形區域,並可以對其做一些簡單操作。這塊矩形區域,需要用左上和右下兩個座標點表示。2.區別 1 精度不一樣。rect是使用int型別作為數值,rectf是使用float型別作為數值。2 兩個型別提供的方法也不是完全...

pygame中Rect物件的方法詳解

目錄 copy move move ip inflate inflate ip clamp clamp ip clip clipline union union ip unionall unionall ip fit normalize contains collidepoint collidere...

Rect 的相關操作

1.bool equalrect const rect lprc1,first rectangle const rect lprc2 second rectangle 說明 判斷兩個矩形結構是否相同。非零表示成功,零表示失敗。會設定getlasterror 2.bool inflaterect lp...