- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的程序中,用户可以在 matplotlib 图上绘制形状,并对这些形状执行各种操作。我目前正在尝试实现这些形状的缩放以保持它们相对于主图的位置,即使在放大时也是如此。
我的对象由顶点列表表示,
obj = [(1, 1), (2, 1), (1, 0), (2, 0)] # represents a 1 unit square
当然这是我的多边形表示方式的简化分解,但在这种情况下它们唯一有用的属性是顶点。
用户可以选择他想放大的边界框,如下所示
一旦松开鼠标,应用程序将缩放到该位置,唯一的问题是我的多边形不会随之缩放。当 Canvas 缩放时,多边形将保留在它们的确切位置,现在代表一个与以前完全不同的区域。这是因为缩放是由 matplotlib 处理的,它是实际应用程序的后端。如果用户要放大上面选定的位置,我想要做的是沿着下面图片显示的内容:
所以我知道的是
[(1,2),(1,0)....]
targets = [itemHandle1, itemHandle2....]
zoomboundedbox = [(162, 62), (937, 560)]
我相信我知道正确缩放这些对象所需的所有关于我的对象的数据,但我不知道允许我完成此操作的算法 ...
def receive(self, lim):
'''
Calculate new coordinates of polygons visible to screen, this function
is called when the user releases the mouse button on the zoom function,
the parameters of the bounding box are internally stored as (x,y) tuples
in xyf (x,y first) and xyl (x,y last)
'''
# Grab all item handles to polygons that intersect with the zoom
# Stored in `targets`
for shape in self.activePolygonList: # loop through active polygons on screen
if shape.handle() in targets: # if the polygon is a target to be scaled
print "scaling...."
# ?
shape.redrawShape()
最佳答案
正如我在评论中所说,我认为您可以使用类似于我在对 Rotate line around center point given two vertices 的回答中所做的事情.
唯一的区别是,将点 (x,y) 相对于点 (cx, cy) 缩放 S
的数学公式是:
x_new = ( S * (x - cx) ) + cx
y_new = ( S * (y - cy) ) + cy
这些决定了如何在内部循环中从 (x1, y1) 和 (x2, y2) 计算点 (p1x, p1y) 和 (p2x, p2y)。
另一个区别可能是您希望相对于用户边界框的中心而不是每个多边形的中心缩放所有多边形。这意味着您不必为每个多边形计算 cx
和 cy
(这样会更快)。
关于python - 仅使用顶点列表按比例缩放多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31125511/
所以基本上我有一个导航栏,我只想有一定的宽度。它有 4 个元素,我希望它正好是这些元素的宽度。这是它在我的工作计算机上的样子。 这正是我想要的样子。导航栏在最后一个元素的末尾完美结束,并且居中。我自己
如何将多个过滤器链接到一个视频中? 基本上 - 我有一个叠加图像(透明 gif),想要将它居中,并为 gif 应用 30% 的不透明度。这就是我所拥有的: ffmpeg -i inputmovie.m
我正在使用此命令对视频进行编码 $transcode = FFMPEG_BINARY.' -loglevel panic -y -i "'.$files['original'].'" -vf scal
我正在使用 Laravel 网站,包括 照片滑动 . 这是我的问题:当我单击照片时,它会以预定义的高度和宽度(在我的情况下为 764X480)弹出。我希望我的照片以原始比例打开,而不是预定义的(因为我
假设我想计算每个组中不同值的比例。例如,使用 mtcars 数据,如何计算 am 的齿轮数量的相对频率(自动/手动)用 dplyr 一次性完成? library(dplyr) data(mtcars)
我用一个非常小的标记散点图数据点(见下面的屏幕截图)。当我使用非常小的标记 ',' 时,图例很难阅读(示例代码取自 here )。 (Python 3,Jupyter 实验室) 如何增加图例中标记的大
我有这个数据框: o d r kz p 1 3 1 5 NaN 1 3 2 0 NaN 1 10 1 7 NaN 1 10 3 1
我对 R 很陌生,所以如果我的问题中有不清楚的地方,请耐心等待。 我有一个 data.frame “蛋白质”有5列,即; 1.protein_name, 2.protein_FC, 3.protein
我有一个带有 webgl 的 Canvas 。我初始化 webgl,创建一个片段和一个顶点着色器、两个覆盖整体的三 Angular 形和一个纹理。 const vertexShaderSource =
我想找到包括旋转,比例和位置的匹配模板。但是cvMatchTemplate没有提供这些详细信息,它仅检测位置。 我看过使用棋盘的例子。但是我想用自定义图像实现相同的示例。 感谢帮助。 问候 最佳答案
我正在尝试制作像欧洲体育应用程序中那样的侧边栏菜单!当菜单从左侧滑动时,sourceviewcontroller 向左滑动并变小。 var percentWidthOfContainer = cont
https://stackblitz.com/edit/js-meta-viewport 在 Chrome 调试器中,当我点击“可以缩放”但无法在移动设备 (Nexus 5 (Chrome 70))
针对一台设备进行优化后, ImageView 会按照布局中定义的正确比例显示。然而,如何才能更进一步,使各种 ImageView 在不同设备上缩放? android:layout_width="fil
我正在尝试创建一个具有两个 View 的 View Controller ,其中一个实际上是自定义 TableView ,如下所示: 是否可以添加某种比例约束,以便在所有设备和所有方向上,上 View
我正在使用 PhoneGap 为 Android 开发。下面你可以看到我的代码,我不能做的是在用户更改比例后将 WebView 比例重置为 1。 The reset code should be im
我有一个涉及大量图像的元素。 问题是每个图像都有不同的分辨率(高度/宽度)。它从 200x600 之类的小图像变成了 3000x5000 大声笑。 我正在尝试找到一种方法将所有图像的大小减小到 (MA
我想在运行时设置视口(viewport)比例 - 移动浏览器是否应该在设置后立即应用更改?这就是我正在尝试的: var scale = 2.0; var viewport = document.get
我在 paperjs 中有一个圆形和一个矩形对象。现在我想制作动画。在该动画中,圆圈上升并且矩形必须在圆圈之后(在圆圈底部)增长。我在这里有一个例子(不是我想要的那样工作) example 代码: v
对不起,我不能给标题带来完美的含义。您可以在 http://dainielhhong.com/page1.html 测试代码 无论屏幕大小如何,我都想使 crack 和 box fit。 它适合我的显
我是 D3 v3 的新手,正在学习一些有关基本线性和序数尺度的教程。我正在修改教程中的一段代码。我想让颜色根据窗口的大小显示和缩放。如果有更多数据,那么它应该再次均匀分布以容纳所有数据。 var da
我是一名优秀的程序员,十分优秀!