Processing.js:从文件中读取信息

时间:2015-04-25 20:53:22

标签: html5 processing processing.js

我有一个处理草图,其中我从文件中读取了一些坐标:

float[][] points = new float[243][3];

void setup() {
  size(500, 500, P3D);
  background(255);
  camera(100, 50, 150, 0, 0, 0, 0, -1, 0);
  String lines[] = loadStrings("1xd3CoordsKnot");

  for (int i = 0; i < lines.length; i++) {
    String[] list = split(lines[i], " ");
    float x = Float.parseFloat(list[0]);
    float y = Float.parseFloat(list[1]);
    float z = Float.parseFloat(list[2]);
    points[i][0] = x;
    points[i][1] = y;
    points[i][2] = z;
  }
 }

void draw() {
  background(50);
  lights();

  //the 3d lines here
  for (int i = 0; i < 242; i++) {
    line(points[i][0],points[i][1],points[i][2],points[i+1][0],points[i+1][1],points[i+1][2]);
    stroke(255);
    strokeWeight(2);
  }

}

在处理过程中运行时效果非常好。我试图将其嵌入到网页中。在这种情况下不绘制线条。 javascript控制台给了我一个错误,说明在html文件的根目录中找不到读取坐标的文件,所以我将其复制到那里。但现在它根本不显示草图,并给出了以下错误:ReferenceError: Can't find variable: Float

html如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="js/processing.min.js"></script>
</head>
<body>
    <canvas data-processing-sources="pde/1xd3.pde"></canvas>
</body>
</html>

这里有什么问题?

2 个答案:

答案 0 :(得分:1)

不要使用Java API调用,使用Processing自己的API,这样当您在#34;而不是JVM&#34;中运行它时,草图不会中断。 (请记住,Processing 一种语言,它不是&#34; Java的一个子集,它是一种简单编译为Java而且重写次数最少的语言,所以如果你想要可移植的代码,使用Processing,而不是&#34;你正在使用的翻译支持的东西&#34;)。

Processing有自己的float解析函数,简称为float()

String a = "3.52312";
float b = float(a); // b is now the number 3.52312

答案 1 :(得分:-1)

尝试

parseFloat(list[0]);

而不是

Float.parseFloat();

它应该做的工作! :)