我的绘图操作有问题

时间:2018-04-27 21:10:18

标签: processing

我是处理新手,所以我对在哪里阅读或开始感到困惑。现在,当我按下方框时,我必须使代码工作以使椭圆绘制颜色。虽然它是在我将鼠标悬停在盒子上并继续没有鼠标的情况下完成的。当我点击它并再次点击它或发布我的新闻动作时,我怎么能让它保持只画画。任何帮助都会很有意义。我刚刚拿出了画出矩形和椭圆的部分

float x=0;
float r=255;
float b =255;
float g= 255;
float i=20;
float t=60;
float a=0;
float c=0;
float e=0;
float f=0;

...

 if (mousePressed==true) {
if (mouseX> 19 && mouseX<40 && mouseY>19 && mouseY<41 ) {//move up give     range
t=t+1;
}

if (mouseX>60 && mouseX<80 && mouseY>19 && mouseY<41) {//move down
t=t-1;
}

if (mousePressed==true) {

if (mouseX> 19 && mouseX<40 && mouseY>19 && mouseY<41 )
 {//move up give range
t=t+1;
}
if (mouseX>60 && mouseX<80 && mouseY>19 && mouseY<41) {//move down 
t=t-1;
    }
    } else if (mouseX>100 && mouseX<120 && mouseY>19 && mouseY<41) {// draw line(series of elipses)
e=10;
f=10;
r=255;
b=255;
g=255;
a=i+10;
c=t+20;
fill(r, g, b);


} else if (mouseX>140 && mouseX<160 && mouseY>19 && mouseY<41) {// green line
//e=10;
f=10;
r=0;
g=255;
b=0;
fill (r, g, b);


} else if (mouseX>180 && mouseX<200 && mouseY>19 && mouseY<41) {// blue line

r=0;
g=0;
b=255;
fill(r, g, b);

}  else if (mouseX>220 && mouseX<240 && mouseY>19 && mouseY<41) {// red line
e=10;
f=10;
r=255;
g=0;
b=0;
fill(r, g, b);

}

} else if (mouseX>260 && mouseX<238 && mouseY>19 && mouseY<41) {// pink         line 

r=255;
g=0;
b=255;
fill(r, g, b);
}
}
}

1 个答案:

答案 0 :(得分:0)

您的逻辑对于检测鼠标是否被按下以及指针位于何处是正确的:private class removeButton implements ActionListener { @Override public void actionPerformed(ActionEvent e) { for(Object book : selectedBookList.getSelectedValues()) { books.addElement(book.toString()); selectedBooks.removeElement(book); } } } if (mousePressed==true)

现在,您可以为用户可以按下的每个框声明一个变量,指示当前鼠标是否按下了该特定框:if (mouseX> 19 && mouseX<40 && mouseY>19 && mouseY<41 )boolean isPressed_Box1 = false;。然后在boolean isPressed_Box2 = false;函数内,检查每个方框矩形,鼠标是否在该框内,然后按下。将相应的变量设置为draw(),否则将其设置为true。此时,现在每个变量都应该具有正确的值。所以你对鼠标的所有操作都已完成。添加另一系列false语句,每个框一个,根据每个相应的变量绘制一个合适的颜色矩形。