gpt4 book ai didi

processing - p5.j​​s webgl 多边形线关节解决方法?

转载 作者:行者123 更新时间:2023-12-01 13:10:49 25 4
gpt4 key购买 nike

关于在 p5.js WEBGL 模式下使用描边的自定义形状(使用 beginShape 函数):在 WEBGL 模式下,lineJoint() 和 lineCap() 函数不可用。这就是形状中的线条不能无缝连接的原因。我尝试在我的自定义形状中使用轮廓来解决这个问题,但这也没有在 WEBGL 模式下实现。

还有其他方法可以让这些线路连接起来吗?

非常感谢!

有问题的代码笔: https://codepen.io/sebastianwinter/pen/eYNNEEx?editors=1010

轮廓不工作

function setup() { 
createCanvas(window.innerWidth, window.innerHeight, WEBGL);
}

function draw() {

let strokeSize = 20;
background(2,8,51);
smooth();
noFill();
strokeWeight(strokeSize);
stroke(255,255,255);

polygon(0, 0, 200, 7);
}

function polygon(x, y, radius, npoints) {
let angle = TWO_PI / npoints;
beginShape();
for (let a = 0; a < TWO_PI; a += angle) {
let sx = x + cos(a) * radius;
let sy = y + sin(a) * radius;
vertex(sx, sy);
}
/* not working:
beginContour();
for (let a = 0; a < TWO_PI; a += angle) {
let sx = x + cos(a) * (radius - strokeSize);
let sy = y + sin(a) * (radius - strokeSize);
vertex(sx, sy);
}
endContour();*/
endShape(CLOSE);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.10.2/p5.js"></script>

broken stroke

最佳答案

AFAIK p5.js 的 WEBGL 模式仍处于试验阶段,您在 2D 模式下习惯的一些功能仍然是 in the works .

目前我可以建议一个 hacky 解决方法:使用内部形状,类似于 beginContour() :

function setup() { 
createCanvas(window.innerWidth, window.innerHeight, WEBGL);
}


function draw() {

let strokeSize = 20;
background(2,8,51);
smooth();
fill(255);
//strokeJoin(BEVEL);
//strokeWeight(1);
stroke(255,255,255);

polygon(0, 0, 200, 7, 0.85);


}


function polygon(x, y, radius, npoints, thicknessRatio) {
let angle = TWO_PI / npoints;
beginShape();
//CW
for (let a = 0; a <= TWO_PI; a += angle) {
let sx = x + cos(a) * radius;
let sy = y + sin(a) * radius;
vertex(sx, sy);
}
// beginContour();
// CCW
for (let a = TWO_PI; a >= 0; a -= angle) {
let sx = x + cos(a) * radius * thicknessRatio;
let sy = y + sin(a) * radius * thicknessRatio;
vertex(sx, sy);
}
// endContour();
endShape(CLOSE);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.10.2/p5.min.js"></script>

polygon drawn using filled shaped as a workaround for strokes not fully supported in WEBGL mode at the moment

关于processing - p5.j​​s webgl 多边形线关节解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60158002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com