Processing 网格纹理制作(棋盘格)

2232175042

发表文章数:4182

首页 » 资源分享 » 正文

开始
Processing 网格纹理制作(棋盘格)
首先写好Processing该有的样子,定义settings(),setup(),draw()等函数:void settings(){ size(800,800);}void setup() { }void draw() { }这个settings()我会单独去做讲解,这里简单说一下:它是早于setup()初始化的处理函数,有点像Unity脚本系统中Start()和Awake()的关系,但是逻辑层面是不一样的。很多PApplet类中的函数在这里是不能被调用的,除了size()和smooth()两个函数。而且,一旦写了settings(),就必须得把上述两个函数写在settings()里头!大家以后都可以养成习惯这么去填写,因为Processing系统这么设定,有它的道理,不过如果是纯碎学习,那不码这个settings()也无妨。还有个值得说的,因为只是要做个图,其实draw()没必要写上。小试牛刀我们先试一试画一个矩形框,如下:noStroke();fill(255);rect(150,150,100,100);这样会在画布上出现一个白色矩形框,ok,接下来要做的是把这个事情给过程化(面向过程),写个函数封装其过程:void drawRect(int c, int x, int y, int w, int h) { noStroke(); fill(c); rect(x, y, w, h);}drawRect()可以被传入五个参数,分别代表其颜色、坐标信息x,y、矩形长宽大小。为什么能这么去封装它,这要求思考问题本身。细细观察棋盘格的特点,黑白方块相隔,如果抽象出它的属性,那么就不难想得到有诸如上述的参数,我们把它称之为属性(当然这个说法其实是不严谨的,因为现在我们的编程思路仅仅是面向过程,在OOP面向对象中这个特点会更加明显)[哦对,有读者感兴趣的话也能找找有关函数式编程的资料,绝对会让你开拓眼界,在思考问题的方式上会有不一样的感受哦,参考https://www.zhihu.com/question/28292740?sort=created]。再接再厉有了这个函数就可以在外头传进参数来绘制想要的结果,那问题来了,如何传进去?首先是颜色,颜色好办,int c = color(200,20,20); //这里可以将color类型看成是int 类型,其实在计算机里颜色这概念也就是一个数值而已这样就结束了。然后是位置,如果你之前学过或者感受过循环结构(编程是要多多感受的,你说编程有没有套路,其实很多时候是可以凭经验办事的),那么就不难想到两个for循环遍历来绘制布满整个画布的图形的例子,那在这里,同样是做这样的处理(这就是所谓的算法):for (int x = 0; x < width; x += increW) { for (int y = 0; y < height; y += increH) { int c = color(255); drawRect(c, x, y, increW, increH); } }而对于矩形大小,我们做一假设,设想要在画布上绘制10*10个方块阵列,那么每个方块的大小,即位置偏移增量increW和increH(increment表示增量,一般我们会使用常用的英文缩写定义变量名)就可以这么计算得出: increW = width / WCOUNT; // WCOUNT、HCOUNT代表数量10、10 你可以写成 increW=width/WCOUNT;这样,没问题! increH = height / HCOUNT; // 但是养成良好的编程习惯和修养,加上些空格,你自己也觉得便于阅读,还haokanmeiguan在for语句的第三个表达式中写明x自加increW,y自加increH,得到的结果便是每次传入drawRect()函数中的位置有了相应偏移,大小也有了定义,即每次位移的数值。如果你按照这一步骤敲码执行,你会得到全白的画布,为什么呢?很简单,事实上Processing已经帮你绘制了这么多方块,只是颜色统一,位置统一,完美无瑕得散步在画布上了,没有任何缝隙。而要想实现间隔黑白效果,是不是还得加上黑色方块呢。是的,就得是要绘制这样的rect:
Processing 网格纹理制作(棋盘格)

未经允许不得转载:眨天博客作者:2232175042, 转载或复制请以 超链接形式 并注明出处 眨天网
原文地址:《Processing 网格纹理制作(棋盘格)》 发布于2020-09-26

分享到:
赞(0) 打赏 生成海报

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册