如何使用WEBGL在p5.js中绘制一条线

时间:2017-02-15 09:37:11

标签: javascript p5.js

3D中的绘制线是否适用于p5.js?

这里的教程: https://github.com/processing/p5.js/wiki/Getting-started-with-WebGL-in-p5 说它应该,但我的尝试只是给了一个空白页。

function setup() {
  createCanvas(400,400, WEBGL);
}

function draw(){
  line(-100,-100,-100, 100,100,100);
}

正如Kevin在下面指出的那样,控制台出错:

TypeError: this._renderer.line is not a function

当我尝试使用line();

如果我将draw()写为

,我的浏览器确实支持WEBGL
function draw(){
  box();
}
确实得到了一个盒子。

我目前发现绘制线条的唯一方法是编写自己的函数

function drawLine(x1, y1, z1, x2,y2, z2){
  beginShape();
  vertex(x1,y1,z1);
  vertex(x2,y2,z2);  
  endShape();
}

确实在3D空间中绘制了一条线,但是控制台会生成许多形式

的错误
  

错误:WebGL:vertexAttribPointer:-1不是有效的index。这个   值可能来自getAttribLocation()调用,在这里   返回值-1表示传递的名称与a不对应   指定程序中的活动属性。

这样做,所以一定有问题。

1 个答案:

答案 0 :(得分:0)

Googling your error会返回大量结果,包括this GitHub issue

所以看起来这是一个已知问题。 line()函数应该有效,但尚未正确实现。

Google搜索您的第二个错误会返回this GitHub issue,其中提到它可能是由于在绘制前没有设置fill()颜色造成的。