【问题标题】:JavaScript function returning arrayJavaScript 函数返回数组
【发布时间】:2015-09-22 18:06:48
【问题描述】:

谁能告诉我为什么从TriangulosParaLinhas 返回的向量没有保存在向量行中?

if (lineMode == true) {
       var lines = triangulosParaLinhas(vertices);
 }

function triangulosParaLinhas(vertices) {
  var pontos = [];
  for ( i = 0; i < vertices.length / 3; i = +3) {

    pontos.push(vertices[i]);  
    pontos.push(vertices[i + 1]);

    pontos.push(vertices[i + 1]);
    pontos.push(vertices[i + 2]);

    pontos.push(vertices[i + 2]);
    pontos.push(vertices[i]);
  }
  return pontos;
}

【问题讨论】:

  • vertices 中有什么以及预期的输出是什么
  • lineModefalse?
  • lineMode 为真,不要将矢量浮桥保存到行中
  • 顶点中的点是 3x3 组,但我想分组 2x2,因为我必须使用 gl.LINES 函数在画布中绘制
  • 在这种情况下是一个三角形,里面有三角形,用滑块移动

标签: javascript arrays function


【解决方案1】:

我不确定您的函数是否有意义,因为它似乎正在获取一个值数组,然后将其推入另一个数组(看起来相同),然后返回它。

无论你试图解决什么问题,都可能与以下任何一个有关:

  1. if (lineMode == true) {} - lineMode 不会计算为 true,因此永远不会返回 lines

  2. vec2 未定义,因此每当您传递 vertices 时函数调用都会失败

这是测试代码的实时示例:-

EXAMPLE

通过在示例中使用您的代码,屏幕上会显示相同的数组。您的预期输出是什么?

【讨论】:

  • 在openGL中定义一个三角形我需要3个点,在这种情况下是顶点数组。但在我的另一种情况下,我必须是 6 个点,因为我需要 2 个点来定义三角形 t 的每一边
  • 当我调用 var lines=triangulosParaLinhas(vertices) 时,函数 triangulosParaLinhas(vertices) 的结果返回数组不保存在行中?
  • @DiogoCosta - 好吧,不管你的函数的目的是什么,lines 不会返回函数调用的值的唯一原因是如果lineMode 是假的,因此你的代码不会不要落入if statement
猜你喜欢
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
  • 2014-08-29
  • 2019-04-25
  • 1970-01-01
相关资源
最近更新 更多