Processing &引用;“形状模式”;用于控制p5

Processing &引用;“形状模式”;用于控制p5,processing,control-p5,Processing,Control P5,香草处理有修改“形状绘制位置”的功能。如果可能,如何获得与绘制UI“控制器”相同的功能 具体来说,我尝试了以下代码: shapeMode(中间); cp5.添加按钮(“开/关”) .设置位置(宽度/2,高度/2) .设置大小(300300) .setColorBackground(颜色(0,113,0)); 得到了这个结果: 但我想看到的是: 显然,类似于.setPosition(宽度/2-按钮宽度/2,高度/2-按钮宽度/2)的东西可以工作,但我希望代码保持最少。调用shapeMode(

香草处理有修改“形状绘制位置”的功能。如果可能,如何获得与绘制UI“控制器”相同的功能

具体来说,我尝试了以下代码:

shapeMode(中间);
cp5.添加按钮(“开/关”)
.设置位置(宽度/2,高度/2)
.设置大小(300300)
.setColorBackground(颜色(0,113,0));
得到了这个结果:

但我想看到的是:


显然,类似于
.setPosition(宽度/2-按钮宽度/2,高度/2-按钮宽度/2)的东西可以工作
,但我希望代码保持最少。

调用
shapeMode()
函数只会更改使用
shape()
函数绘制的形状的模式

ControlP5不使用
shape()
函数绘制按钮。它使用
rect()
函数

可以使用
rectMode()
函数更改矩形的绘制方式。更多信息可在中找到

但我怀疑你会对结果感到满意。这将移动按钮的矩形,但不会移动按钮的文本,因此所有文本都将偏离中心。这只是一个问题,我相信还有很多其他问题

如果我是你,我会自己计算。如果您真的担心代码最小化,那么您可以创建自己的包装类或实用程序函数来封装进行偏移所需的“逻辑”。但是,我认为您应该更担心保持代码可读性和可维护性