在处理中缩放应用程序并保持纵横比相同

Scaleing apps in processing and keep the aspect ratio the same

我一直在编写一个应用程序来处理 here 并遇到了一个问题,再也没有回头。现在我想完成它,所以我来了。每当我尝试缩放程序时,我都无法正确缩放图像。然后我需要均匀缩放以防止图像失真。我应该如何处理这个问题?

图像必须均匀缩放,因为它们像拼图一样整齐地组合在一起。

我画的代码:

PImage a = "a.png";
PImage b = "b.png";
PImage c = "c.png";
PImage d = "d.png";    


image(a,0,0);
image(b,0,height);
image(c,width,0);
image(d,height,width);


//distorded
image(a,0,0,100,100);

图像 A 现在不再像以前那样是矩形,而是一个部分填充了颜色的正方形。

扭曲后的图像最初是矩形。图像的一部分是清晰的,其余部分是彩色的。所以试图改变比例会导致失真。

之前

我试过只使用 image(a,0,0,scaleX,scaleY); 但它会扭曲图像。我需要图像不改变纵横比。所需的外观是以前的样子,但更大了。我似乎无法让它工作。由于它将针对不同的设备尺寸进行缩放,因此我必须以相同的纵横比进行动态调整。


失真示例。

您是否打算添加更复杂的图像,因为使用处理 createShape() vertex() endShape()

可以轻松绘制当前图形

如果您绘制图像,您可以使用百分比而不是每个顶点的具体 x,y 来使用相对定位。这将允许它缩放到 screenHeight 和 screenWidth 的值。

如果您需要帮助,我可以帮助您编写一个 class 代码,生成保险杠形状并且可重复用于每个实例。

我向你的仓库创建了一个拉取请求以添加屏幕方向锁,你只需将 android:screenOrientation="portrait" 添加到 AndroidManifest.xml

完整文档:https://developer.android.com/guide/topics/manifest/activity-element.html#screen