将草图缩放为不同的分辨率

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将草图缩放为不同的分辨率相关的知识,希望对你有一定的参考价值。

现在这似乎是一个愚蠢的问题,但是请听我说。

直到这一点,每当我想创建可以在多种分辨率下运行的草图时,我都会在ellipse()上放置某些对象,例如width/2, height/2, width/16, width/16来画一个圆(是的,我知道有一个圆函数,但是那不是重点)。

但是,当创建包含某些细节的更精确的对象时,必须要做width/2.489或使用width/2 - someNumber可以达到相同的效果时,它会变得非常烦人。>

说我正在绘制要显示在Duckxy对象,我希望能够拥有Duckdraw()方法列表,例如circle(x,y, 100); circle(x + someNum, y, 25);

我可以选择具有标准尺寸,例如int STD = width / 100,然后通过执行类似circle(x + STD * 3, y, 25);的方法来添加这些小细节,但是这也感觉很简单。

[我知道处理具有scale()选项,但不幸的是,无法缩放仅绘制对象的heightswidths。它也缩放东西被绘制的位置。

因此,如果我先在size(1920/2 * 1080/2)上绘制一个草图,然后在width / 2, height / 2上画一个圆,然后在size(1920,1080)scale(2)上运行该草图,它将在width / 2 * 2上绘制一个圆,并将该圆几乎屏幕外

所以...绘制各种分辨率不同的对象的最优雅的方法是什么? (但长宽比相同)

现在这似乎是一个愚蠢的问题,但请听我说。在此之前,每当我想创建可以在多种分辨率下运行的草图时,我都会放置某些对象,例如...

答案

几年前,我做了类似的事情。我的方法太复杂了,无法共享代码,但是我很乐意分享原理。

另一答案

您的目标是获取任意坐标(我将其称为“世界空间”)并将其映射到“屏幕空间”(显示器上的像素)。最好的方法确实是使用scale()。但是,在您的代码中,您使用了scale(2)(从世界空间映射到更大的世界空间

以上是关于将草图缩放为不同的分辨率的主要内容,如果未能解决你的问题,请参考以下文章

Surface Pro的最大X和Y触摸坐标为什么与原始显示分辨率不同?

如何让网页自动适应显示器不同的“分辨率”?

js获取分辨率和缩放页面的方法

使用 Sketch 3 的 iOS 图像分辨率大小

React-Native:如何缩放字体大小以支持 Android 和 iOS 中的许多不同分辨率和屏幕?

检测移动缩放和默认移动分辨率