當進行ui設定的排列處理, 經常會遇到頭痛的對稱排列問題:
以乙個點 (一般為原點或者0點) 為中心, 將n個 (不定值) 顯示物件 (比如按鈕) 對稱排列如果按照奇數來排列:
這樣排列 第二個物件為0位置
1對應-1d如果按照偶數排列:2對應0d
3對應1d
第二三個物件分別到0點距離為半個間距
1對應-1.5d這裡我們用乙個簡單的演算法來忽略掉這種判斷, 只通過乙個公式就可以將問題解決, 不需要判斷:2對應-0.5d
3對應0.5d
4對應1.5d
設定物件間距為d
設定物件半間距為d = d/2
//設定最大物件數量
int maxcount = 4;
//設定半距離
float distancehalf = d;
//獲取半長度/半距離的數值
int countdhalf = maxcount-1;
//自行設定物件, 這裡不寫
object* poolarr[4];
//for (int i=0; i2-countdhalf)*distancehalf;
}
當數量為奇數3個時:
1物件 (0*2-2) 距離中心為-2半個單位當數量為偶數4個時:2物件 (1*2-2) 距離中心為0半個單位
3物件 (2*2-2) 距離中心為2半個單位
1物件 (0*2-3) 距離中心為-3半個單位, 即1.5距離將間距折半後很容易理解對稱排列方2物件 (1*2-3) 距離中心為-1半個單位
3物件 (2*2-3) 距離中心為1半個單位
4物件 (3*2-3) 距離中心為3半個單位
排列對稱串
題目內容 字串有些是對稱的,有些是不對稱的,請將那些對稱的字串按從小到大的順序輸出。字串先以長度論大小,如果長度相同,再以ascii碼值為排序標準。輸入描述 輸入資料中含有一些字串 1 串長 256 輸出描述 根據每個字串,輸出對稱的那些串,並且要求按照從小到大的順序輸出 輸入樣例 123321 1...
排列對稱串(向量)
字串有些是對稱的,有些不是對稱的,請將那些對稱的字串安從小到大的順序輸出,字串先以長度論大小,如果長度相等,再以ascii碼值為排序標準 輸入乙個n,表示接下來有n組字串,串長 256 n 1000 根據每個字串,輸出對稱的那些串,並且要求按從小到大的順序輸出 7 123321 123454321 ...
《字母表中對稱位置的字母》
問題描述 判別從鍵盤輸入的乙個字元是不是英文本母 包括大小寫 如果是字母,則輸出它在字母表中對稱位置的字母。例如輸入a 則輸出z,輸入b 則輸出y。若該字元不是英文本母,則報告顯示 it is not a letter.字樣。輸入形式 從鍵盤輸入的乙個字元。輸出形式 如果該輸入字元是英文本母,則輸出...