2016-01-29 237 views
2

下面是一个例子:setRotationX/setRotationY宽度/高度增加后。如何获得新的宽度和高度?

黑色图像具有setRotationX(45)。在旋转X = 0时,黑色图像的宽度与红色图像的宽度相同,但旋转时其宽度增加。

如果我使用getWidth,则任何rotationX值的值都是相同的。

另一个问题是宽度因屏幕尺寸而异。例如,在平板电脑上,黑色视图看起来比红色视图更宽。

我已经找到了解决这个唯一的解决办法是让旋转视图的宽度,然后使用的scaleX。

回答

0

我意识到我的做法是错误的。对于我想达到的目标,我必须使用pivotx和pivoty。默认情况下,pivotx和pivoty被设置为50%,这就是为什么会发生这种情况。解决方案是使用(pivotx = 50%和pivoty = 0%)或(pivotx = 50%和pivoty = 100%)

0

这可以使用三角法来实现。它看起来像|sin(theta * 2)/2| + 1(对于宽度为1的正方形)。我从头开始做这件事,所以要对准确性进行调整,包括增加考虑宽度和高度的功能部分。

+0

您可以给我更多的细节。为什么4,什么是theta? –

+0

'4'因为你有一个正方形的四边,因此需要这个正常大小的1/4。 Theta或θ'是旋转值。 –

+0

不工作。当theta = 45,1 + sin(theta * 4)= 1。我认为这是一个乘以初始宽度的因子吗? –