java - 分辨率和纵横比

标签 java math

我有一个 1920x1080 的屏幕和另一个 1280x720 的屏幕。它们的长宽比均为 16:9。

我有一个机器人,可以将鼠标移动到屏幕上的一组特定坐标;例如,我可以在 1920x1080 的屏幕上将鼠标移动到 500x720。

让鼠标移动到与 1280x720 屏幕成比例的相同坐标 500x720 的方程是什么?

最佳答案

基本上,您只需将坐标乘以比例因子即可。下面,sxsy 是从大屏幕坐标变换到小屏幕坐标的数字(0-1 区间内)。

如果屏幕的宽高比相同,则 sx == sy,但在一般情况下不一定如此。

>>> w1, h1 = 1920., 1080.
>>> w2, h2 = 1280.,  720.
>>> sx, sy = w2/w1, h2/h1  # scale factors in horizontal and vertical dimensions
>>> x1, y1 =  500.,  720.
>>> x2, y2 = sx*x1, sy*y1
>>> x2, y2
(333.3333333333333, 480.0)

顺便说一句,要转换回另一个方向,比例因子将为 1/sx1/sy

关于java - 分辨率和纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26027730/

相关文章:

math - 是否可以在 OneNote 2007 中添加自定义 "napkin math"运算符?

javascript - Vanilla javascript 函数四舍五入到最接近的百或 100K,加上符号

algorithm - 将引脚最佳地放置在轴上作为算术级数

java - 无法检查数组中的所有元素

java - ASM 字节码替换功能未完成

java - 什么是NullPointerException,我该如何解决?

Java8 流和过滤器

javascript - 根据另一个矩形的旋转移动矩形的位置

java - 计算多边形顶点的外角

java - 是否可以有一个 "in-process"Tomcat 实例,用于测试目的?