Processing 如何使文本在保持相同中点的情况下先增长后收缩?
我要做一个已故父亲节礼物。我需要某种类型的文本模式(中间)。我试图让一段文字在循环中展开,然后收缩,然后再展开,再收缩。然而,我尝试的似乎是稀疏地增长和收缩,使文本四处移动,而不是保持居中。有没有一种简单的方法来处理文本? 代码:Processing 如何使文本在保持相同中点的情况下先增长后收缩?,processing,Processing,我要做一个已故父亲节礼物。我需要某种类型的文本模式(中间)。我试图让一段文字在循环中展开,然后收缩,然后再展开,再收缩。然而,我尝试的似乎是稀疏地增长和收缩,使文本四处移动,而不是保持居中。有没有一种简单的方法来处理文本? 代码: 如果要保持文本居中,可以使用,而不是不断修改textX和textY。在这种情况下,您只需删除这两个变量: String msg = "Happy Father's Day"; int ts = 50; float tSize = 50; boolean flip;
如果要保持文本居中,可以使用,而不是不断修改
textX
和textY
。在这种情况下,您只需删除这两个变量:
String msg = "Happy Father's Day";
int ts = 50;
float tSize = 50;
boolean flip;
void setup() {
size(800, 600);
textAlign(CENTER,CENTER);
}
void draw() {
background(0);
fill(255);
textSize(tSize);
text(msg, width/2, height/2);
if (!flip) {
tSize += 0.5;
} else {
tSize -= 0.5;
}
if (tSize == 35) flip = false;
if (tSize == 65) flip = true;
}
您可以通过使flip
成为一个始终为1或-1而不是布尔值的数字来简化代码。这减少了所需的条件逻辑量。还请注意以下代码如何将相等比较(=
)替换为不等(=
)。类似于tSize==65
的东西确实适用于大小为0.5
的步骤(因为0.5
有一个有限的基数-2扩展),但是如果您将0.5
更改为例如0.1
以使其变慢,则值65
将完全由于浮点舍入错误而跳过。由于tSize
被声明为浮点,因此将==
与它一起使用会带来麻烦
String msg = "Happy Father's Day";
int ts = 50;
float tSize = 50;
float flip = -1;
void setup() {
size(800, 600);
textAlign(CENTER,CENTER);
}
void draw() {
background(0);
fill(255);
textSize(tSize);
text(msg, width/2, height/2);
tSize += flip * 0.5;
if (tSize <= 35 || tSize >= 65 ) flip *= -1;
}
String msg=“父亲节快乐”;
int ts=50;
浮动tSize=50;
浮动翻转=-1;
无效设置(){
尺寸(800600);
textAlign(居中,居中);
}
作废提款(){
背景(0);
填充(255);
textSize(tSize);
文本(消息,宽度/2,高度/2);
tSize+=flip*0.5;
如果(tSize=65)翻转*=-1;
}
oops删除下括号只需编辑代码(我为您做的),而不是在注释中描述编辑。所编写的代码效果很好,实际上我更喜欢它,而不是我在下面的答案中给出的代码的完美中心版本。我猜你父亲会喜欢这两种版本。
String msg = "Happy Father's Day";
int ts = 50;
float tSize = 50;
float flip = -1;
void setup() {
size(800, 600);
textAlign(CENTER,CENTER);
}
void draw() {
background(0);
fill(255);
textSize(tSize);
text(msg, width/2, height/2);
tSize += flip * 0.5;
if (tSize <= 35 || tSize >= 65 ) flip *= -1;
}