单纯数学上的意思吧,如果K==dd*d,最后pull就是小于1的。
边界处理的小伎俩。你可以试试一些特殊值,就知道作者希望把哪些值用哪个代码块处理,比如
k<dd*d
k=dd*d
dd*d<k<dd*d+0.000001
k>=dd*d+1
边界处理的小伎俩。你可以试试一些特殊值,就知道作者希望把哪些值用哪个代码块处理,比如
k<dd*d
k=dd*d
dd*d<k<dd*d+0.000001
k>=dd*d+1
解决方案 »
- 自己实现铃声播放和音乐播放冲突怎么办?
- android多媒体开发中的overlay是什么概念?
- android录音开发,怎么设置频率范围?
- 关于android与网站交互的编码问题
- 关于Android绘制饼图的问题
- android sqlite支持多少连接?最好开启个连接
- 人人网官方Android客户端源码分析及下载
- android expandablelistview让他直接显示子目录
- Android给Web服务器发送请求并且获得数据出现错误!
- 求助!24byte des 随机密钥的产生算法
- 在android应用层上,多个app之间如何实现主题、样式和图片等资源?
- 关于android2.0适配的问题
其他的应该是某个业务需要计算值。
d是开根号的 是 两点的距离那dd *d 是什么意思呢?
这是一个对图像按中心拉伸的函数,(cx,cy)是变形的中心点,距离它一定范围内的点不会变化,而范围外的点会从原始点被“拉”到中心点(pull*dx)。
为什么是dd*d而不是dd或d,这是因为需要以d的三次方为参数衡量点的pull值,影响它会被“拉”的程度。具体这个dd*d为什么合理,你完全可以先绘制一批点,再设定参数运行这个函数,再绘制变化后的点,看看它实现了一个什么效果。
K是给定的一个参数,你可以设想,当K越大,这个所谓的“范围”就越大。
但是“而范围外的点会从原点被拉到中心点”(pull *dx)这个pull * dx 又把握搞糊涂了。(难道是拉伸的比例???)
pull是拉伸的比例?不过 dd*d 可以理解为三次方 谢谢你,我一直以为他是有什么含义的。 因为d是两个点之间的距离嘛。我还以为不会是有什么公式吧。谢谢了。
至于为什么dd和d要分开来除,而不是先乘出来dd*d再一块儿除,我觉得这是为了控制精度。因为0.999999^2 约为0.999998,误差会变大,大概是这样吧。
那算比例K/d 可以理解为 k这个数值 可以有多少个d。
那么dd又是什么?
既然要算三次方,最快的方法不是算d,再把d乘以三次(算d的过程中就要先算dd),先算dd再算d是最快的。K只是一个参数,看到d是到(x,y)到(cx,cy)的距离,
d^3<K时,点的位置固定不变
否则(x,y)到(cx,cy)的直线距离被拉进,拉近的比例为pull,也就是K/d^3,
因为拉进的前提是K<d^3,所以拉近的比例一定小于1,而且d越大,这个拉近的比例越小。
难道这句 K/ dd*d 这句代码还考虑到了效率吗?因为已经有了dd 所以就直接拿来用了,比 d^3算的快? 我能这样理解吗?后面的我就明白了。非常感谢!还有其实那个K 其实可以自己指定一个值。