首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可视化长文本并在处理中编辑内容

可视化长文本并在处理中编辑内容
EN

Stack Overflow用户
提问于 2016-07-09 17:56:31
回答 1查看 55关注 0票数 0

我正在尝试重新创建这个poster,以了解如何在处理过程中可视化长文本。目前,我是这样写的:

代码语言:javascript
复制
import processing.pdf.*;

PFont f;
String txt [];
String myData [];
ArrayList romeopos = new ArrayList();
ArrayList julietpos  = new ArrayList();



void setup() {
  size(600, 800, P2D);
  background(255);
  f = createFont("Garamond", 9);
  txt=loadStrings("test.txt");  


  myData = new String[txt.length];
  myData = txt[0].split(" ");
}



void draw() {
  noLoop();
  fill(50);
  textFont(f);

  for (int i=0; i<myData.length; i++) {

    if ( myData[i].toLowerCase().contains("romeo"))
      romeopos.add(i);
    if ( myData[i].toLowerCase().contains("juliet"))
      julietpos.add(i);
  }

  // text(txt[0], 10, 10, width-20, height-10);
  // println (myData);
}

我不知道该怎么继续,你能帮我吗?.txt是用一行写成的罗密欧与朱丽叶。

EN

回答 1

Stack Overflow用户

发布于 2016-07-11 10:02:29

让我们分析一下在Java中使用Processing重新创建该海报所需执行的步骤:

  • 你需要打开并加载一个包含戏剧《罗密欧与朱丽叶》的完整文本的文件,为此,我将使用Scanner Java类
  • 你应该将每一行文本保存为一个局部变量

String line = scanner.nextLine();

  • use一个yourTextSize全局变量,用于跟踪您决定使用的textSize()。对于每行文本,您需要将此变量乘以一个计数器:

index = yourTextSize*lineCounter;yPosition);

  • now ( yPosition,paddingX,yPosition )如果您有当前行的字符串,请使用String的indexOf(String str)和indexOf(String str,int fromIndex)方法的组合检查该行的所有"Romeo“字符串的字符索引。要使计算"Romeo“字符索引的x坐标更容易,请使用等宽字体。将所有的罗密欧点存储在一个ArrayList中。以相同的方式找到所有的" Juliet“索引,并将Juliet点存储在单独的ArrayList中。使用Point Java对象来存储这些points.

  • finally,在海报中,罗密欧的每个实例都被一条红线链接到朱丽叶的每个实例。在for循环中迭代罗密欧点ArrayList,每次使用Processing的line()绘制一条指向Juliet数组列表中所有点的线。

for (int i= 0;i< Romeo.length();i++) { for (int j= 0;j< Juliet.length();j++) { line(Romeo.get(i).getX,Romeo.get(i).getY,Juliet.get(j).getX,Juliet.get(j).getY);} }

在处理这个项目时,我的建议是从小处开始;使用游戏的1/16,直到你几乎完成程序。如果你使用合适大小的字体,那么简单地渲染“罗密欧与朱丽叶”的整个文本将需要一些时间。你需要把你程序的大小(宽,高)做得很大才能适应整个游戏。您似乎刚刚开始学习如何使用处理进行编码,也许可以在解决这个问题之前先尝试一些更简单的项目?如果您感谢我在其中花费的时间,请批准我的回答:)。如果你对我的回答有任何一般性的概念性问题,我很乐意跟进,但我认为,如果你对提到的类或API有任何具体的后续问题,这些问题还没有在StackOverflow上得到回答,那么你应该在另一篇文章中询问他们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38280571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档