我用一个算法画了一个圆,算法是用point()函数来画圆弧上的每个点。然后,我使用line()函数将不同的直线连接到圆弧和圆心。我的目标是显示一个内部形状具有不同颜色的饼图。由于必须是算法,我甚至不能使用beginshape() & endshape()函数&我不能改变算法。我需要一些帮助添加由线条区分的区域内的颜色。
我的代码是
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)
}发布于 2018-06-03 09:43:11
要在不更改绘制圆的方式的情况下为这些区域上色,最简单的方法是使用arc()函数创建形状。
https://p5js.org/reference/#/p5/arc
这就是你的意思吗?如果你因为某些原因不能使用这个函数,请告诉我,你可以用bezier节点来模拟。如果这对你有用,你可以测试一下,或者告诉我,我来举个例子。
附注:在每条语句后始终使用分号是一个很好的做法,即使不需要分号也是如此。
诚挚的问候!德克纳赫特。
https://stackoverflow.com/questions/50662422
复制相似问题