asp.net - 图像缩放几何

标签 asp.net css geometry

这是一个与编程非常相关但又与编程无关的问题。我正在基于网络的应用程序中执行图像缩放,并且我需要相对于固定位置维护图像,即使它的缩放由其左上角锚定。希望图形使这成为可能。 alt text

这个想法是,C 是一个固定位置,我想将其保留为缩放原点,而不是当前 css 行为的 B。 C 可能在也可能不在实际图像内。因此,作为图像缩放比例,B 需要相对于 C 移动。示例:如果图像缩放 50%,则 B 会向 C 移动 1/2 的距离。如果图像增长到其大小的 200%,则 B 会移动移动距离 C 两倍的距离。

在给定 C 的位置和图像的缩放因子的情况下,最终寻找 B 的 x 和 y 公式。不确定图像的大小是否需要成为其中的一部分,但如果需要的话我有它。

感谢您的帮助!

我所知道的事情:

  1. 我知道的宽度和高度 图像矩形。
  2. 我知道 B 相对于 A 的偏移量。
  3. 我知道 C 相对于 A 的偏移量。
  4. 我知道图像的比例因子。

最佳答案

实际上,您希望将 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/

相关文章:

c# - 比较验证器不会停止回发

Asp.Net MVC 和 Entity Framework 架构

c# - 重构一个可以处理多种类型的方法?

.net - 如何使用 IIS6 让 HttpModule 触发*所有*文件扩展名

javascript - 处理时的 jQuery 数据表和动画 SVG

algorithm - 将 3D 平面上的点转换为 2D 点的程序

css - 根据字体设置不同的行高

css - 具有两个类之一但不能同时具有两个类的元素的选择器

math - 将圆柱体变成球体而不夹在两极

c++ - 判断一个点是否在 3D 空间的三角形内