对称位置排列
来源:互联网 发布:linux 红底白字 编辑:程序博客网 时间:2024/04/30 06:03
当进行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; i<maxCount; i++) { poolArr[i].x = (i*2-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半个单位
将间距折半后很容易理解对称排列方式
0 0
- 对称位置排列
- 对称排列
- POJ 2013 对称排列
- zjut_1208 排列对称串
- 3.15 排列对称串
- ZJUT 1208 排列对称串
- POJ-2013 Symmetric Order-对称排列人名
- LeetCode 266. Palindrome Permutation(对称排列)
- 字符串技巧——字符串对称位置
- LeetCode 267. Palindrome Permutation II(对称排列)
- C++ 递归位置排列算法及其应用
- VC控件自动排列位置显示
- MySQL修改字段的排列位置
- 字符串数组所有排列,找指定串位置
- leetcode60-Permutation Sequence(求指定位置的排列)
- MySQL在数据表中修改字段的排列位置
- 排列
- 排列
- 二叉树的反转,递归实现和非递归实现。
- UIImageView(loading...)
- 【周练3016.3.5】老王修公园(dfs,水)
- python安装mysqldb
- Android Studio 各种配置(更新中)
- 对称位置排列
- jquery中remove(),detach()和empty()的区别
- z memcpy(for MSVC)小内存高速复制
- 数字信号处理复习
- Java的cmd配置javac能编译成功,但java时出现找不到或无法加载主类 的解决方法
- 从图片中取出像素出现次数最多的颜色(取出图片主色)
- Activity生命周期
- chrome浏览器书签同步问题
- Selenium Chrome启动