You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Processing中使用width或height命令缩小图形?

Processing中借助窗口宽高(width/height)缩小图形的方法

首先明确:width和height是Processing内置的变量,代表当前窗口的宽度和高度,并非“命令”。要借助它们缩小图形,核心是基于窗口尺寸计算缩放比例,再对图形的坐标、尺寸进行等比例调整。以下是两种实用方法:

方法1:手动计算缩放比例,修改图形参数

先根据窗口宽高和你原始设计的画布尺寸,算出缩放因子,再把每个图形的坐标、尺寸都乘以这个因子,就能实现缩小效果。

示例代码:

void setup() {
  size(800, 600); // 设置窗口大小,此时width=800,height=600
}

void draw() {
  background(255);
  
  // 假设原始图形是基于1000x800的画布设计的,计算适配当前窗口的缩放比例
  float scaleX = width / 1000.0f;
  float scaleY = height / 800.0f;
  float scaleFactor = min(scaleX, scaleY); // 取较小比例,保证图形完整显示
  
  // 用缩放因子调整所有图形参数
  square(300 * scaleFactor, 250 * scaleFactor, 400 * scaleFactor);
  rect(450 * scaleFactor, 50 * scaleFactor, 50 * scaleFactor, 200 * scaleFactor);
  triangle(350 * scaleFactor, 250 * scaleFactor, 
           850 * scaleFactor, 250 * scaleFactor, 
           600 * scaleFactor, 50 * scaleFactor);
}

方法2:用scale()函数结合窗口尺寸实现批量缩放

Processing的scale()函数可以直接对整个坐标系进行缩放,无需逐个修改图形参数,更高效。

示例代码:

void setup() {
  size(800, 600);
}

void draw() {
  background(255);
  
  float scaleX = width / 1000.0f;
  float scaleY = height / 800.0f;
  float scaleFactor = min(scaleX, scaleY);
  
  pushMatrix(); // 保存当前坐标系状态
  scale(scaleFactor); // 应用缩放比例
  // 直接用原始参数绘制,图形会自动被缩放
  square(300, 250, 400);
  rect(450, 50, 50, 200);
  triangle(350, 250, 850, 250, 600, 50);
  popMatrix(); // 恢复坐标系,避免影响后续绘制
}

如果你的需求是固定比例缩小(比如缩到原大小的一半),可以直接用scale(0.5),但结合width/height的方式更适合让图形适配不同窗口尺寸,实现响应式缩放。

内容的提问来源于stack exchange,提问作者anonymous_girl2023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 19:19:50