我将如何在不同的行上创建平滑的垂直文本波(java)?

我将如何在不同的行上创建平滑的垂直文本波(java)?,java,text,Java,Text,我正在尝试生成类似于波浪文本的内容。我该怎么做呢?我尝试的方法是简单地使用for循环来增加每行之前的不可见空格的数量。结果是线性的,虽然这在某种程度上是我想要的,但我更喜欢寻找更平滑的东西,比如在粘贴盒中。我曾考虑过每次乘以0.75或1.25,但对于数据类型,不能有半个字符,java中的所有这些东西很快就会让人困惑。有什么办法吗 这是我到目前为止得到的,线性例子 Scanner scan=新的扫描仪(System.in); 字符串空格=“\u2009”; System.out.println(“

我正在尝试生成类似于波浪文本的内容。我该怎么做呢?我尝试的方法是简单地使用for循环来增加每行之前的不可见空格的数量。结果是线性的,虽然这在某种程度上是我想要的,但我更喜欢寻找更平滑的东西,比如在粘贴盒中。我曾考虑过每次乘以0.75或1.25,但对于数据类型,不能有半个字符,java中的所有这些东西很快就会让人困惑。有什么办法吗

这是我到目前为止得到的,线性例子

Scanner scan=新的扫描仪(System.in);
字符串空格=“\u2009”;
System.out.println(“键入您要转换的字符”);
String characters=scan.nextLine();
对于(int i=1;i<50;i++){
System.out.println(空格.重复(i)+字符);
}```

要创建正弦波模式:

int maxIndent = 10;
for (float i = 1; i < 50; i += 0.1) {
    int spaces = (int)((Math.sin(i) + 1) / 2 * maxIndent);
    System.out.println(space.repeat(spaces) + characters);
}

要创建正弦波模式,请执行以下操作:

int maxIndent = 10;
for (float i = 1; i < 50; i += 0.1) {
    int spaces = (int)((Math.sin(i) + 1) / 2 * maxIndent);
    System.out.println(space.repeat(spaces) + characters);
}

您可以使用第二个缩进变量传递到
repeat()
。继续增加它,直到它达到某个最大值。开始减小它,直到它达到0。重复。例如,我将如何将它与角色对齐。我的意思是,如果有一个字符,那么我重复它
1+0.5
然后
1+0.6
我不能这样做,因为你没有半个字符。有没有示例?可以使用第二个缩进变量传递到
repeat()
。继续增加它,直到它达到某个最大值。开始减小它,直到它达到0。重复。例如,我将如何将它与角色对齐。我的意思是,如果有一个字符,那么我重复它
1+0.5
然后
1+0.6
我不能这样做,因为你没有半个字符。你有一个例子吗?