對稱位置排列

2021-07-10 07:33:36 字數 1207 閱讀 4874

當進行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半個單位

2物件 (1*2-2) 距離中心為0半個單位

3物件 (2*2-2) 距離中心為2半個單位

當數量為偶數4個時:

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.字樣。輸入形式 從鍵盤輸入的乙個字元。輸出形式 如果該輸入字元是英文本母,則輸出...