利用processing來做出 Lyto Different Colour
先做出2*2的圓
size(300,500);
ellipse(75,200+75,150,150);
ellipse(75+150,200+75,150,150);
ellipse(75,200+75+150,150,150);
ellipse(75+150,200+75+150,150,150);
--------------------------------------------------------------------------------
在做出3*3的
size(300,500);
ellipse(50,200+50,100,100);
ellipse(50+100,200+50,100,100);
ellipse(50+100+100,200+50,100,100);
ellipse(50,200+50+100,100,100);
ellipse(50+100,200+50+100,100,100);
ellipse(50+100+100,200+50+100,100,100);
ellipse(50,200+50+100+100,100,100);
ellipse(50+100,200+50+100+100,100,100);
ellipse(50+100+100,200+50+100+100,100,100);
------------------------------------------------------------------------------------------
用另一種方式來做3*3
size(300,500);
for(int y=0;y<3;y++){
for(int x=0;x<3;x++){
ellipse(50+x*100,200+50+y*100,100,100);
}
}
---------------------------------------------------------------------------------------
利用修改n的值來更改球的數量
size(300,500);
///因為寬度是300,有3個球去分,每個球分到直徑100,半徑50
///因為寬度是300,有n個球去分,每個球分到直徑300/n,半徑300/n/2
int n=5;
int r=300/n, w=r/2;
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
ellipse(w+x*r,200+w+y*r,r,r);
}
}
----------------------------------------------------------------------------
讓球可以從小變到大
void setup(){
size(300,500);
}
int n=5;
int r=300/n, w=r/2,rr=0;///會變動的R直徑,我們叫他rr
void draw(){
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
ellipse(w+x*r,200+w+y*r,rr,rr);///從小變到大
}
}
if(rr<r) rr++;//如國沒有超過範圍,++從小變到大
}
-------------------------------------------------------------------------------------------------
讓球可以從小變到大,並且可以讓球越變越多
void setup(){
size(300,500);
}
int n=2,rr=0;
void draw(){
background(0);
int r=300/n, w=r/2;
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
ellipse(w+x*r,200+w+y*r,rr,rr);
}
}
if(rr<r) rr++;
else{
n++;//下一個數目
rr=0;//從小開始長
}
}
----------------------------------------------------------------------------------------------------
讓答案與其他不太一樣,並且把滑鼠只得地方改成紅色的
void setup(){
size(300,500);
}
int ansX=1,ansY=2;///answer!!!
int n=3,rr=0;
void draw(){
background(0);
int r=300/n, w=r/2;
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
if(x==ansX && y==ansY) fill(128);///答案要不同
else fill(255);///白色
if(dist(mouseX,mouseY,w+x*r,200+w+y*r)<w) fill(255,0,0);
ellipse(w+x*r,200+w+y*r,rr,rr);
}
}
if(rr<r) rr++;
------------------------------------------------------------------------------------------
點擊到對的答案後,換下一題
void setup(){
size(300,500);
}
int ansX=1,ansY=2;///answer!!!
int n=3,rr=0;
void draw(){
background(0);
int r=300/n, w=r/2;
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
if(x==ansX && y==ansY) fill(128);
else fill(255);//white
if(dist(mouseX,mouseY,w+x*r,200+w+y*r)<w) {///現在mouse選中誰
if(mousePressed && x==ansX && y==ansY){//他剛好也是答案
ansX= int(random(n));
ansY= int(random(n));
}
}
ellipse(w+x*r,200+w+y*r,rr,rr);
}
}
if(rr<r) rr++;
}
-----------------------------------------------------------------------------------------------------
讓球的顏色可以改變
void setup(){
size(300,500);
colorMode(HSB,256);
}
int ansX=1,ansY=2;
int n=3,rr=0;
int h=0;//Hue 色相,色調
void draw(){
background(0);
int r=300/n, w=r/2;
for(int y=0;y<n;y++){
for(int x=0;x<n;x++){
if(x==ansX && y==ansY) fill(h-15,243,234);
else fill(h,255,255);
if(dist(mouseX,mouseY,w+x*r,200+w+y*r)<w) {
if(mousePressed && x==ansX && y==ansY){
ansX= int(random(n));
ansY= int(random(n));
h+=20;
if(h>256) h=0;
}
}
ellipse(w+x*r,200+w+y*r,rr,rr);
}
}
if(rr<r) rr++;
}










沒有留言:
張貼留言