陣列及迴圈
1.開始畫線(直線)
程式如下:
void setup()
{
size(500,500);
}
void draw(){
background(253,236,180);
line(50,50,50,450);
line(100,50,100,450);
line(150,50,150,450);
line(200,50,200,450);
}
2.用for迴圈畫線(直線)
程式如下:
void setup()
{
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
}
}
3.用for迴圈畫線(橫線)
void setup()
{
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
}
//有兩種寫法
//int [][]go=new int [9][9]; 第一種
int [][]go={
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},}; //第二種
void setup()
{
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++)
{
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
}
5.用陣列畫出紅色方格(練習)
程式如下:
int [][]c={
{1,0,0},
{1,0,0},
{1,0,0}};
void setup()
{
size(300,300);
}
void draw(){
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(c[i][j]==0)fill(128); //j是x方向,i是y方向
else fill(255,0,0);
rect(j*100,i*100,100,100);
}
}
}
6.用陣列畫出圓
程式如下:
int [][]go={
{1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0},};
void setup(){
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++){
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}
}
}
}
7.用陣列畫棋子part 3 - 用滑鼠畫圓
x,y 與 i,j利用移項變號❗ 小心,無條件捨去 ❗
程式如下:
int [][]go={
{1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0},};
void setup(){
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++){
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}
}
}
}
void mousePressed(){
int j=(mouseX-50)/50;
int i=(mouseY-50)/50;
go[i][j]=1;
}
8.讓他變準確
程式如下:
int [][]go={
{1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0},};
void setup(){
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++){
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}
}
}
}
void mousePressed(){
int j=(mouseX-25)/50; //升一半會變得準確
int i=(mouseY-25)/50;
go[i][j]=1;
}
9.加入黑棋及消除棋子功能
程式如下:
int [][]go={
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0},};
void setup(){
size(500,500);
}
void draw(){
background(253,236,180);
for(int i=0;i<9;i++){
line(50+50*i,50,50+50*i,450);
line(50,50+50*i,450,50+50*i);
}
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(go[i][j]==1){
int x=50+50*j,y=50+50*i;
fill(255);ellipse(x,y,40,40);
}else if(go[i][j]==2){
int x=50+50*j,y=50+50*i;
fill(0);ellipse(x,y,40,40);
}
}
}
}
void mousePressed(){ //左:白棋 右:黑棋 中:消除
int j=(mouseX-25)/50;
int i=(mouseY-25)/50;
if(mouseButton==LEFT) go[i][j]=1;
if(mouseButton==RIGHT) go[i][j]=2;
if(mouseButton==CENTER) go[i][j]=0;
}
完成!!!
10.畫個藝術圓
程式如下:
void setup(){
size(500,500);
}
void draw(){
for(float a=0;a<360;a++)
{
float x=250+250*cos(radians(a)); //用三角函數
float y=250+250*sin(radians(a));
ellipse(x,y,4,4);
}
}
11.看看別人的作品
https://openprocessing.org/
這是Che-Yu Wu的主頁
12.改變數讓他利用滑鼠變形狀
程式如下:
void setup(){
size(500,500);
}
void draw(){
background(125);
for(float a=0;a<360;a+=1)
{
float x=250+mouseX*cos(radians(a));
float y=250+mouseY*sin(radians(a));
ellipse(x,y,mouseX,mouseY);
}
}
13.滑鼠移動顏色跟著改變
程式如下:
void setup(){
size(500,500);
}
void draw(){
background(255);
noFill();
stroke(mouseX,mouseY,255);
for(float a=0;a<360;a+=1)
{
float x=250+mouseX*cos(radians(a));
float y=250+mouseY*sin(radians(a));
ellipse(x,y,mouseX,mouseY);
}
}














沒有留言:
張貼留言