让我首先说明我的数学很糟糕。
我正在尝试重新定位和旋转一个矩形。但是,我需要从一个不是 0,0 的点旋转矩形,而是根据它的坐标移动了多远。我确信这没有多大意义,所以我做了一些草图来帮助解释我需要什么。
上图显示了红色矩形从 0% 到 100% 的 3 个阶段。红色矩形的 X 和 Y 坐标(红色矩形的左上角)仅移动蓝色矩形高度的一定百分比。
红色矩形可以旋转。仅关注上面的中间示例(“距离 -50%”),其中红色矩形重新定位在蓝色矩形高度的 -50 处,上图中的新角度现在为 -45º。它已从 0, 0 点旋转。
现在,我的问题是我希望它的旋转点反映它的位置。
红色和蓝色矩形大小相同,但宽度和高度相反。因为红色矩形的 0,0 坐标现在是蓝色矩形高度的 -50%,并且由于它们具有相反的宽度和高度,我希望旋转点是红色矩形宽度的 50%(或蓝色矩形的 50%高度,这是同一件事)。
而不是专门告诉红色矩形以其宽度的 50% 旋转,为了做我想做的事,我需要通过使用一个公式来模拟这样做,该公式将定位红色矩形的 X 和 Y 坐标,以便其旋转点反映它的位置。