首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在形状中填充颜色

在形状中填充颜色
EN

Stack Overflow用户
提问于 2018-06-03 08:54:41
回答 1查看 349关注 0票数 1

我用一个算法画了一个圆,算法是用point()函数来画圆弧上的每个点。然后,我使用line()函数将不同的直线连接到圆弧和圆心。我的目标是显示一个内部形状具有不同颜色的饼图。由于必须是算法,我甚至不能使用beginshape() & endshape()函数&我不能改变算法。我需要一些帮助添加由线条区分的区域内的颜色。

我的代码是

代码语言:javascript
复制
function setup() {
    var col=0;
    col=mouseX;
    // body...
    createCanvas(1280,720)
    translate(width/2, height/2)
    drawcircle(0 ,0, 200)
}


function drawcircle(xc , yc, r) {
    let p0;
    let xall = [];
    let yall = [];
    if(Number.isInteger(r))
        p0 = 1-r
    else
        p0 = 5/4 -r
    let x = 0, y = r;
    let pk = p0;
    while (x <= y) {
        if(pk<0){
            x=x+1;
            pk = pk + 2*x +1;
        } 
        else{
            x=x+1;
            y=y-1;
            pk = pk + 2*x -2*y +1;
        }
        displayCircle(x,y);
        displayCircle(x, -y);
        displayCircle(-x, y);
        displayCircle(-x, -y);
        displayCircle(y, x);
        displayCircle(y, -x);
        displayCircle(-y, x);
        displayCircle(-y, -x);
    }


    function displayCircle(x,y){
        let x2=x+xc;
        let y2=y+yc;
        console.log(x2,y2)
        point(x2,y2);
    }

    // body...
    line(xc, yc, x, y);
    line(xc, yc, -y, x);
    rotate(PI/3);
    line(xc, yc, y, x);
    rotate(-PI/3);
    rotate(PI+10)
    line(xc,yc, y, -x);
    rotate(-PI-10)
    rotate(-0.3)
    line(xc,yc, -x, -y)
    rotate(0.3)
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-03 09:43:11

要在不更改绘制圆的方式的情况下为这些区域上色,最简单的方法是使用arc()函数创建形状。

https://p5js.org/reference/#/p5/arc

这就是你的意思吗?如果你因为某些原因不能使用这个函数,请告诉我,你可以用bezier节点来模拟。如果这对你有用,你可以测试一下,或者告诉我,我来举个例子。

附注:在每条语句后始终使用分号是一个很好的做法,即使不需要分号也是如此。

诚挚的问候!德克纳赫特。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50662422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档