极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 31851|回复: 5

Processing之旅-----【10课,Processing语法基础,Processing世界的法则】

[复制链接]
发表于 2013-5-11 16:25:59 | 显示全部楼层 |阅读模式
既然讲到Processing的语法了(跟英语的语法有本质区别,我们这里讲的是编程上的语法结构),不过英语是跟讲英语的人进行沟通的工具,而Processing的语法则是跟Processing沟通的工具。

首先,让我们对Processing的历史进行一些基本了解。
Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。她是 Java 语言的延伸,并支持许多现有的 Java 语言架构,不过在语法 (syntax) 上简易许多,并具有许多贴心及人性化的设计。Processing 可以在 Windows、MAC OS X、MAC OS 9 、Linux 等操作系统上使用。本软件目前是处于初版测试的阶段,试用版听说最近真的快要出了!以 Processing 完成的作品可在个人本机端作用,或以Java Applets 的模式外输至网络上发布。---以上引自百度百科
Processing is an open source programming language and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching the fundamentals of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks. The project was initiated in 2001 by Casey Reas and Benjamin Fry, both formerly of the Aesthetics and Computation Group at the MIT Media Lab. One of the stated aims of Processing is to act as a tool to get non-programmers started with programming, through the instant gratification of visual feedback. The language builds on the Java language, but uses a simplified syntax and graphics programming model.---以上引自维基百科

有很多同学可能有java的基础,那么非常好,这样的基础会让你更快的接受Processing的规则和语法。当然如果有其他语言编程基础就更好了。
当然有的开发者认为Processing就是java的一个库。这个认识明显是不全面的,我想说那些认为Processing就是一个库的人说:"Processing并不是一个库,只是你通过千辛万苦将它用作java下的一个库而已.".前一段事件参与了群中关于Processing是不是编程语言的讨论当中。

object-oriented
Appeared in
2001; 12 years ago
1.5.1 (May 15, 2011; 23 months ago)
2.0 Beta 8 (February 24, 2013; 2 months ago)
strong
Influenced by
Design By Numbers, Java,OpenGL, PostScript, C
Cross-platform
GPL, LGPL
.pde

在自由而公正的维基百科的资料中,Processing被归为了:
programming language

总之不管同学们以后如何看待Processing ,如何使用Processing ,毋庸置疑的都会选择适合自己的方法。


老师我自然而然也在非官方IDE上写过程序,其过程想当痛苦及复杂,你问我用的是什么?IDEA。在Processing之旅的系列教程中,我们会再以后也讲到一些如何使用其他更强的的编辑器,来写Processing程序。比如:Sublime Text 2,IDEA等。


那么历史我们已经简单了解了,有兴趣的同学,可以自行前往百度百科或维基百科,或www.processing.org自行对其历史部分的了解。
下面我们进行语法的讲解:

这次讲解我们会以一个小程序的方式讲解常用的语法,如函数,类,循环语句(for,while),条件判断语句(if ,switch)
  1. //
  2. //
  3. //
  4. //
  5. //
  6. //
  7. //
  8. //
  9. //
  10. //
  11. //
  12. //
  13. int iSum;//变量的定义
  14. void setup()// void  setup() ==类型声明 函数名(参数)
  15. {
  16.   //{函数体}
  17.   /*
  18.   编程中用于循环处理的语句。
  19.   Processing的for语句形式有两种:
  20.   一种是和C语言中的for语句形式一样,
  21.   另一种形式用于在集合和数组之中进行迭代。
  22.   有时候把这种形式称为增强的for(enhanced for)语句,
  23.   它可以使循环更加紧凑和容易阅读。
  24.   它的一般形式为: for(;;)
  25.   语句;
  26.   参数A;初始化总是一个赋值语句,它用来给循环控制变量赋初值;
  27.   参数B;条件表达式是一个关系表达式,它决定什么时候退出循环;
  28.   参数C:增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用";"分开。
  29.   */
  30.   for (int i=0;i<10;i++)//for(参数A;参数B;参数C)  
  31.   {
  32.     println("这里是for循环,第:"+i+"次");  
  33.   }
  34.   /*
  35.   while(<条件>) {<语句;>}
  36.   循环中可以使用continue结束当前循环,回到循环开始处开始下一次循环。也可以用break跳出整个循环。  
  37.   */
  38.   int whilebutton=10;
  39.   while (whilebutton>0)
  40.   {
  41.     println("这里是while循环,第"+whilebutton+"次");
  42.     whilebutton--;
  43.   }
  44.   if (true)
  45.   {
  46.     println("这里是if语句内部!");
  47.   }
  48.   if (false)
  49.   {
  50.     println("这里是进不来的!");  
  51.   }  
  52.   else
  53.   {
  54.     println("这里是else语句内部!");
  55.   }

  56. }

  57. void draw(){
  58.     bigSwitch(ReturnSum((int)random(0, 3),(int)random(0, 3)));
  59. }

  60. int ReturnSum(int i,int n)//这是一个自定义函数 int型函数,这里RetrnSum 的int表示函数返回类型为int
  61. {//此函数功能是对i和n进行求和
  62.   int m_temp=0;//这是一个局部变量,对局部变量进行初始化是一个好习惯。
  63.   m_temp=i+n;
  64.   return m_temp;
  65. }

  66. void bigSwitch(int x)
  67. {
  68.   switch (x)
  69.   {
  70.     case 0:
  71.     {
  72.       background(0, 0, 0, 0);
  73.       fill(255, 0, 0, 100);
  74.       rect(width/2, height/2, width/4, height/4);
  75.       break;
  76.     }
  77.     case 1:
  78.     {
  79.       background(0, 0, 0, 0);
  80.       fill(0, 255, 0, 100);
  81.       rect(width/2, height/2, width/4, height/4);
  82.       break;
  83.     }
  84.     case 2:
  85.     {
  86.       background(0, 0, 0, 0);
  87.       fill(0, 0, 255, 100);
  88.       rect(width/2, height/2, width/4, height/4);
  89.       break;
  90.     }
  91.     case 3:
  92.     {
  93.       background(0, 0, 0, 0);
  94.       fill(255, 255, 0, 100);
  95.       rect(width/2, height/2, width/4, height/4);
  96.       break;
  97.     }
  98.     case 4:
  99.     {
  100.       background(0, 0, 0, 0);
  101.       fill(255, 255,255, 100);
  102.       rect(width/2, height/2, width/4, height/4);
  103.       break;
  104.     }
  105.     default :
  106.     {
  107.       println("不好意思,没有预设的处理方法。");
  108.       break;  
  109.     }
  110.               
  111.                     
  112.   }
  113. }
复制代码


可能同学们一下子对这些语句还难以消化。
没关系慢慢坚持用下去就可以了。
没有一个大牛是天生就会的。
所以坚持实践。才是最好的学习方法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-5-12 09:27:04 | 显示全部楼层
抢沙发,攒多了慢慢研究。。
回复 支持 反对

使用道具 举报

发表于 2013-5-16 14:20:31 | 显示全部楼层
很好,往往就缺这么基础的!!!
回复 支持 反对

使用道具 举报

发表于 2014-1-2 13:31:08 | 显示全部楼层
楼主辛苦了
回复 支持 反对

使用道具 举报

发表于 2014-12-7 11:39:57 | 显示全部楼层
前面好几节数据结构课不会。。。。
回复 支持 反对

使用道具 举报

发表于 2016-1-27 21:57:27 | 显示全部楼层
random是什么意思?
为什么是bigshitch?
switch函数没看懂,  求详解。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 06:00 , Processed in 0.045047 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表