我初步掌握processing代码追踪特定像素颜色,还能识别并编号多个物体。但是,对于定位追踪特定人或特定物,还没有切实的解决办法?
选择java环境来学习processing。作为java下的一个巨大分支,processing遵循java语法,并可以涵盖一系列工具库来拓展自身能力。processing原生的库包含了形状、颜色、控制等15类功能函数, 可以用这些函数来定义我们想要的图形和颜色、图像位置和组合、随时间的运动方式从而组合出一系列绚丽多彩的艺术作品。
首先先从简单的几何图形开始绘制,学习并体会processing的功能。
//Draw a line
line(0,0,100,100); //注意加英文分号
在编辑器中输入上面的代码,并点击运行按钮,就可以看到一条直线已经被画出来啦!
上面代码中我们使用了第一个函数line(x1,y1,x2,y2)
,分别输入起始和终止点的xy
坐标,这个函数会在两点间绘制一条线。(注意:这里的坐标单位都是像素pixel,左上角为原点)
那么再来画一个圆:
//Draw a circle
ellipse(50,50,80,80);
需要指出的是,圆是一种特殊的椭圆,只要指定长轴和短轴相同即可。上面的函数ellipse(centerX,centerY, width, height)
,中需要输入圆心坐标xy和对应的长宽。比如我们来个椭圆:
//Draw a circle
ellipse(50,50,100,80);
再来画个矩形:
//draw a rectangle
rect(10,10,50,50)
其中函数rect(leftupprX,leftupperY,width,height)
,需要输入左上角坐标和对应的宽高。
画个三角形:
//draw a triangle
triangle(0,0,50,20,100,10)
函数triangle(x1, y1, x2, y2, x3, y3)
,输入三角形的三个顶点即可绘制。
四边形也是可以的:
//draw a quadrilateral polygn
quad(8, 31, 86, 20, 69, 83, 30, 76);
函数quad(x1, y1, x2, y2, x3, y3,x4,y4)
顺序写入四个点的xy坐标即可。
当然,画一个像素点也是可以的
//draw point
point(30,20)
但是,美中不足的是上面画出的颜色太灰暗了,我们能不能修改下背景/颜色呢?
接下来就需要学习如何改变背景的颜色,隆重引入void setup()
。
为了将我们的背景设置为我们喜欢的颜色,需要使用一个全局的配置函数setup()
来进行对我们的绘图窗口进行设置。它可以指定我们窗口的大小、背景颜色、图形边界等等各种指标。
void setup()
{
size(100, 100); //设置画布大小
background(#FFF0DB); //background(r,g,b)
}
void draw()
{
triangle(0,0,100,0,100,100);
fill(#6acfb1);
}
比刚才漂亮多了。在上面的代码里,有三个知识点需要注意:
a.void setup()
表示我们定义了一个设置函数,由于它的作用只是设置,没有返回任何值,所以用void
来定义它的属性;
b.size(width,height)
定义了画布的尺寸,background(rgb/hexcolor)
定义了背景颜色,可以是rgb形式、十六进制形式也可以加alpha通道;
c.void draw()
定义了一个绘图函数这里面包含的代码是绘图时使用的。我们首先绘制了一个三角形,而后用fill(rgb/hex)
为填充了对应的颜色。
上面图中的画出绿色三角形有一个黑边不太好看,我们可以在绘图前加上去除边缘的命令noStroke()
:
void setup()
{
size(100, 100); //设置画布大小
background(#FFF0DB); //background(r,g,b)
}
void draw()
{
noStroke();
triangle(0,0,100,0,100,100);
fill(#6acfb1);
}