这是一个与编程非常相关但又与编程无关的问题。我正在基于网络的应用程序中执行图像缩放,并且我需要相对于固定位置维护图像,即使它的缩放由其左上角锚定。希望图形使这成为可能。
这个想法是,C 是一个固定位置,我想将其保留为缩放原点,而不是当前 css 行为的 B。 C 可能在也可能不在实际图像内。因此,作为图像缩放比例,B 需要相对于 C 移动。示例:如果图像缩放 50%,则 B 会向 C 移动 1/2 的距离。如果图像增长到其大小的 200%,则 B 会移动移动距离 C 两倍的距离。
在给定 C 的位置和图像的缩放因子的情况下,最终寻找 B 的 x 和 y 公式。不确定图像的大小是否需要成为其中的一部分,但如果需要的话我有它。
感谢您的帮助!
我所知道的事情:
- 我知道的宽度和高度 图像矩形。
- 我知道 B 相对于 A 的偏移量。
- 我知道 C 相对于 A 的偏移量。
- 我知道图像的比例因子。
最佳答案
实际上,您希望将 C 视为原点,然后将 B “移动”缩放量。通过将其视为从 C 到 B 的向量,并按相关量对其进行缩放,您可以相当轻松地做到这一点。
newBx = Cx - (Cx - Bx) * scale;
newBy = Cy - (Cy - By) * scale;
例如,比例为 0.5 (50%),则变为:
newBx = 100 - (100 - 50) * 0.5
= 100 - 25
= 75 // 1/2 the distance to C
newBy = 100 - (100 - 25) * 0.5
= 100 - 37.5
= 62.5 // 1/2 the distance to C
比例为 2 (200%):
newBx = 100 - (100 - 50) * 2
= 100 - 100
= 0 // 2x the distance to C
newBy = 100 - (100 - 25) * 2
= 100 - 150
= -50 // 2x the distance to C
关于asp.net - 图像缩放几何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242028/