NGUI 圆形 裁剪
2016-01-21 18:29
393 查看
void CustomFill (BetterList<Vector3> verts, BetterList<Vector2> uvs, BetterList<Color32> cols) { Vector4 v = drawingDimensions; Vector4 u = drawingUVs; Color32 c = drawingColor; int countTriangle = 9; //计算宽高; float width = v.z - v.x; float height = v.w - v.y; float radius = width / 2; float widthUvs = u.z - u.x; float heightUvs = u.w - u.y; float uvsRadHeight = heightUvs / 2; float uvsRadWidth = widthUvs / 2; float angle = 0; float radian = 0; for (int cnt = 0; cnt < 360; cnt++) { angle = 1f * cnt; radian = Mathf.Deg2Rad * angle; float tempY = radius * Mathf.Sin (radian); float tempX = radius * Mathf.Cos (radian); float tempYUvs = uvsRadHeight * Mathf.Sin (radian); float tempXUvs = uvsRadWidth * Mathf.Cos (radian); verts.Add (new Vector3 (v.x, v.y + radius)); verts.Add (new Vector3 (v.x + radius - tempX, v.w - radius + tempY)); verts.Add (new Vector3 (v.z, v.w - radius)); verts.Add (new Vector3 (v.z, v.y + radius)); uvs.Add (new Vector2 (u.x, u.y + uvsRadHeight)); uvs.Add (new Vector2 (u.x + uvsRadWidth - tempXUvs, u.w - uvsRadHeight + tempYUvs)); uvs.Add (new Vector2 (u.z, u.w - uvsRadHeight)); uvs.Add (new Vector2 (u.z, u.y + uvsRadHeight)); cols.Add (c); cols.Add (c); cols.Add (c); cols.Add (c); } }
360个三角拼接而成。。木有效率可言。。待优化。。
mathf.Sin()是弧度 不是角度。。。需要转换下。。
相关文章推荐
- UITabBarController+微博简单模拟1
- CodeForces 163A Substring and Subsequence dp
- 【UEditor】 UEditor整合项目上传资源到阿里云服务器
- 蓝牙学习之旅——专业术语简述
- UIAlertController的使用(ios9.0后代替UIAlertView与UIActionSheet)
- easyui-searchbox
- 杭电hdu 5147 Sequence II (树状数组)
- UItoolBar 设置背景颜色
- java操作数据库增删改查的小工具1--TxQueryRunner
- angular路由好伙伴儿ui-router
- ExtJS之Ext.Ajax.request用法详解
- UI组件之 ProgressBar及其子类(一)ProgressBar进度条的使用
- android-gpuimage-master 编译失败
- 获取当前界面的ViewCotroller(使用UINavigationController)
- 基于时间UUID的妙用
- Required String parameter 'mob
- H - Rescue hdu1242
- style,getComputedStyle,currentStyle,defaultView,getPropertyValue
- CodeForces 590B Chip 'n Dale Rescue Rangers 题解
- 如何更好地限制一个UITextField的输入长度