欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Processing Java版教程(1):画布与网格

Processing Java版教程(1):画布与网格

2025/10/21 17:09:57 来源:https://blog.csdn.net/joe_g12345/article/details/143658637  浏览:    关键词:Processing Java版教程(1):画布与网格

Processing Java版教程

  • 一、绘制画布
    • 1. 准备工作
    • 2. 绘制画布
  • 二、绘制网格
    • 1. 准备工作
    • 2. 绘制网格
  • 三、完整程序

一、绘制画布

1. 准备工作

int xmin=-10,xmax=10;//x坐标的区间
int ymin=-10,ymax=10;//y坐标的区间
int rangex=xmax-xmin,rangey=ymax-ymin;//xy坐标范围大小

Java 代码逻辑普及

Java 等高级语言中,都使用 数据类型 变量名=值; 的格式进行赋值。对于多个变量且数据类型相同的变量,可以简写为 数据类型 变量名1=值1,变量名2=值2,...,变量名n=值n

Processing 程序解释

一个画布往往有两个信息,分别是 x x x 坐标区间和 y y y 坐标区间,它们影响了画布的布局。在程序中,我们定义了六个变量:xminxmaxyminymaxrangexrangey。这些变量影响了 x x x y y y 坐标的左边界和右边界,以及 在我们眼中这块画布的大小。因为在计算机眼里,它就是一块 n n n 像素 × \times × m m m 像素的画布。

2. 绘制画布

int xscl,yscl;
void setup(){size(600,600);xscl=width/rangex;yscl=-height/rangey;
}

Java 代码逻辑普及

Java 等高级语言中,对于无返回值函数都会使用 void 函数名(参数1,参数2,...,参数n){函数内容;} 的格式来定义。

Processing 程序解释

我们定义的 xsclyscl 变量分别表示了 x x x y y y 坐标的单位大小。在这个代码中,xscl 的值为 600 ÷ 20 = 30 600\div20=30 600÷20=30(个像素),yscl 的值也为 600 ÷ 20 = 30 600\div20=30 600÷20=30(个像素)。这就告诉了计算机,我们认为在坐标 ( 1 , − 2 ) (1,-2) (1,2) 的地方,实际上在 ( 1 × 30 , − 2 × 30 ) (1\times30,-2\times30) (1×30,2×30) 也就是 ( 30 , − 60 ) (30,-60) (30,60) 的位置上。

二、绘制网格

1. 准备工作

void draw(){background(255,255,255);translate(width/2,height/2);//strokeWeight(1);//stroke(0,255,255);grid();
}

Processing 程序解释

函数功能
background(R,G,B)按照 RGB 的值设置背景颜色
translate(x,y) ( 0 , 0 ) (0,0) (0,0) 点(原本应在左上角)移动到 ( x , y ) (x,y) (x,y)
strokeWeight(width)将线条的粗细设置为 width
stroke(R,G,B)按照 RGB 的值设置线条颜色

Processing 原理解释

Processing 中,画布的 ( 0 , 0 ) (0,0) (0,0) 点被定在了左上角,因此越往右 x x x 坐标越大,越往下 y y y 坐标越大。translate() 函数则是纠正这个问题的最佳工具。在程序中,我们写了 translate(width/2,height/2); 这个代码,就是为了 ( 0 , 0 ) (0,0) (0,0) 点默认在最中间

2. 绘制网格

void grid(){//纵线for(int i=xmin;i<=xmax;i++){if(i==0)stroke(0,0,0);//正中间的线else stroke(0,255,255);line(i*xscl,ymin*yscl,i*xscl,ymax*yscl);}//横线for(int i=ymin;i<=ymax;i++){if(i==0)stroke(0,0,0);//正中间的线else stroke(0,255,255);line(xmin*xscl,i*yscl,xmax*xscl,i*yscl);}
}

Java 代码逻辑普及

Java 等高级语言中,基本循环语句按照 for(初值;条件;增值) 的格式编写。这使得这个语句有了 while 循环的功能。即 while(condition) 可以写作 for(;condition;)。条件判断语句则用 if-else if-else 进行判断。

Processing 程序解释

函数功能
line(sx,sy,ex,ey) ( s x , s y ) (sx,sy) (sx,sy) ( e x , e y ) (ex,ey) (ex,ey)(像素)之间绘制一条直线

三、完整程序

int xmin=-10,xmax=10;
int ymin=-10,ymax=10;
int rangex=xmax-xmin,rangey=ymax-ymin;
int xscl,yscl;
void setup(){size(800,800);xscl=width/rangex;yscl=-height/rangey;
}
void draw(){background(255,255,255);translate(width/2,height/2);grid();//测试数据//fill(0,0,0);//stroke(0,0,0);//ellipse(3*xscl,6*yscl,10,10);
}
void grid(){for(int i=xmin;i<=xmax;i++){if(i==0)stroke(0,0,0);else stroke(0,255,255);line(i*xscl,ymin*yscl,i*xscl,ymax*yscl);}for(int i=ymin;i<=ymax;i++){if(i==0)stroke(0,0,0);else stroke(0,255,255);line(xmin*xscl,i*yscl,xmax*xscl,i*yscl);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词