-1
Ich versuche, einen Kreis zu zeichnen, und anstatt einen vollen Kreis (360 Grad) zu bekommen, bekomme ich fast den vollen Kreis und eine fehlende "Scheibe".
Was fehlt mir? Hierfehlendes Stück Kreis webgl
ist der Code:
//init:
starsList[i].circlePositionBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, starsList[i].circlePositionBuffer);
vertices = [1,0,1];
for (j = 3; j < 360; j+=3) {
vertices[j] = starsList[i].factor * starsList[i].radius * Math.cos(j/180.0 * Math.PI);
vertices[j+1] = 0;
vertices[j+2] = starsList[i].factor * starsList[i].radius * Math.sin(j/180.0 * Math.PI);
}
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
starsList[i].circlePositionBuffer.itemSize = 3;
starsList[i].circlePositionBuffer.numItems = 120;
//draw
mat4.identity(mvMatrix);
mat4.translate(mvMatrix, [x, y, z]);
gl.bindBuffer(gl.ARRAY_BUFFER, starsList[i].circlePositionBuffer);
gl.vertexAttribPointer(shaderProgram.vertexPositionAttribute, starsList[i].circlePositionBuffer.itemSize, gl.FLOAT, false, 0, 0);
setMatrixUniforms();
gl.drawArrays(gl.LINE_LOOP, 0, starsList[i].circlePositionBuffer.numItems);
UPDATE - GELÖST
vertices = [1,0,1];
sollte sein:
vertices = [starsList[i].factor * starsList[i].radius,0,0];
seine noch nicht funktioniert .. – arii
versucht, beide Vorschläge – arii
Können Sie eine MCVE bitte? Ist einfacher zu überprüfen, was los ist – Zouch