简体   繁体   English

JavaScript中的高度图不起作用

[英]Heightmap in javascript does not work

I want to create a height map as : z = f(x, y). 我想创建一个高度图:z = f(x,y)。 I use the following javascript code: 我使用以下javascript代码:

        var x0, x1, y0, y1, dx, dy;
        var x, y, z;
        var N = 61;
        x0 = -3;
        x1 =  3;
        y0 = -3;
        y1 =  3;
        dx = (x1 - x0) / (N - 1);
        dy = (y1 - y0) / (N - 1);
        var i, j;
        var z1 =new Array(N);
        for(i=0; i<N; i++){
            z1[i] = new Array(N);
        }
        for(i=0; i<N; i++){
            x = x0 + i*dx;
            for(j=0; j<N; j++){
                y = y0 +j*dy;
                z = 10*Math.sin(Math.sqrt(x*x+y*y));
                z1[i][j].push(z);
            }
        }

        alert("z(4, 5) = " + z1[4][5]));

It does not work. 这是行不通的。 The matrix z1 is not created. 未创建矩阵z1。 What can I do ? 我能做什么 ?

Two issues in your code: 您的代码中有两个问题:

  1. you have a syntax error on alert with one extra closing parenthesis 您在警告时出现语法错误,并带有一个额外的右括号
  2. you create a matrix and when going to z1[i][j], you do not see a table to push data into but directly the cell: instead of z1[i][j].push(z), I would put z1[i][j] = z 创建一个矩阵,然后转到z1 [i] [j]时,看不到将数据直接推入单元格的表:直接将z1代替z1 [i] [j] .push(z) [i] [j] = z

a possible correction: 可能的更正:

var x0, x1, y0, y1, dx, dy;
var x, y, z;
var N = 61;
x0 = -3;
x1 =  3;
y0 = -3;
y1 =  3;
dx = (x1 - x0) / (N - 1);
dy = (y1 - y0) / (N - 1);
var i, j;
var z1 =[];
for(i=0; i<N; i++){
  z1[i] = new Array(N);
}
for(i=0; i<N; i++){
  x = x0 + i*dx;
  for(j=0; j<N; j++){
    y = y0 +j*dy;
    z = 10*Math.sin(Math.sqrt(x*x+y*y));
    z1[i][j] = z;
  }
}
alert("z(4, 5) = " + z1[4][5]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM