我有一个处理草图,其中我从文件中读取了一些坐标:
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>
这里有什么问题?
答案 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();
它应该做的工作! :)