我们如何使用方法 setSinCos(float, float)
?Android 文档说:
Set the matrix to rotate by the specified sine and cosine values.
但是比较含糊,比如不知道正余弦值的作用,google了一下,终于找到了这种方法的一些用法,没有评论,谢谢关注。
最佳答案
将齐次坐标(逆时针)旋转任意角度a,变换矩阵为:
[ cos(a) -sin(a) 0 ]
[ sin(a) cos(a) 0 ]
[ 0 0 1 ]
如果您有 sin/cos 的结果,setSinCos(s, c) 将创建以下矩阵:
[ c -s 0 ]
[ s c 0 ]
[ 0 0 1 ]
您可能会问自己,为什么?好吧,考虑一下您想要将 Sprite 旋转到由两点之间的斜率确定的任意角度的情况。您可以使用 arctan 或 arccos 来确定角度,进行一些检查以确保您处于正确的象限中,然后将新角度提供给 setRotate()。 但是,当您已经有了 sin/cos 值而不需要角度(sin=dy/dist,cos=dx/dist)时,为什么?
setSinCos
满足了这个需求,这对程序员来说更容易,也更高效。
关于android - Matrix中方法setSinCos的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038219/