Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Processing 如何使文本在保持相同中点的情况下先增长后收缩?_Processing - Fatal编程技术网

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;
 }