Processing 处理:图形和遮罩透明度

Processing 处理:图形和遮罩透明度,processing,mask,pgraphics,Processing,Mask,Pgraphics,我的代码中的alpha有问题。我画了两个带条纹的圆圈,但是条纹之间的区域不是红色的。代码如下: PGraphics circ,line,line2,circ2; 无效设置(){ 尺寸(600600,P2D); circ=createGraphics(600600,第2页); circ2=createGraphics(600600,第2页); line=createGraphics(600600,P2D); line2=createGraphics(600600,P2D); 生成圆(行,圈,300

我的代码中的alpha有问题。我画了两个带条纹的圆圈,但是条纹之间的区域不是红色的。代码如下:

PGraphics circ,line,line2,circ2;
无效设置(){
尺寸(600600,P2D);
circ=createGraphics(600600,第2页);
circ2=createGraphics(600600,第2页);
line=createGraphics(600600,P2D);
line2=createGraphics(600600,P2D);
生成圆(行,圈,300100,#00ff00);
makeCircle(第2行,约2350350100,#ff0000);
}
作废提款(){
}
空心生成圆(PGraphics条纹、PGraphics遮罩、int x、int y、int r、,
颜色(c){
面具。光滑();
mask.beginDraw();
面具背景(0,0);
掩模椭圆(x,y,r*2,r*2);
mask.endDraw();
条纹。beginDraw();
条纹。鼻孔();
条纹填充(c,200);

对于(int i=0;i,您可以使用几何运算库轻松获得该值

import geomerative.*;

void setup()
{
  size(600,600,P2D);

  RG.init(this);

}

void draw()
{
  background(255);    

  makeCircle(300, 300, 100, #00ff00);
  makeCircle(mouseX, mouseY, 100, #ff0000);

}

void makeCircle(int x, int y, int r, color c) {
  fill(c);
  RShape mask = RShape.createEllipse(x, y, r*2, r*2);
  for (int i=0; i<11; i++) {
    RShape strip = RShape.createRectangle(x+(i*20)-r, y-r, 10, r*2);
    RShape masked = strip.intersection(mask);
    masked.setStroke(false);
    RG.shape(masked);
  }
}
导入几何运算。*;
无效设置()
{
尺寸(600600,P2D);
RG.init(this);
}
作废提款()
{
背景(255);
makeCircle(300300100,#00ff00);
makeCircle(mouseX,mouseY,100,#ff0000);
}
空心圆(整数x,整数y,整数r,颜色c){
填充(c);
RShape mask=RShape.createEllipse(x,y,r*2,r*2);
对于(int i=0;i