画了个小雪人:
代码如下:
//函数setup() : 准备阶段
function setup() {
// 创建画布,宽度640像素,高度480像素
// 画布的坐标系统为,左上角坐标为(0,0),
// x方向水平向右,y方向垂直向下,单位像素
createCanvas(900,900);
}
// 函数draw():作画阶段
function draw() {
background('#0DEAFF');
fill(255);// 填充白色
//脸
ellipse(450,250,150,150);// 圆圈
//左眼
fill(0);
ellipse(418,230,24,26);
//右眼
ellipse(482,230,24,26);
//鼻子
fill('#FF620D');
triangle(445, 250, 405, 270, 450, 260);
//嘴巴
noFill();
arc(450,255, 80, 80, QUARTER_PI, HALF_PI + QUARTER_PI);
// 身体
fill(255);
ellipse(450,425,200,200);
//纽扣
fill('#0E0CE8');
ellipse(450,355,12,12);
ellipse(450,380,12,12);
ellipse(450,405,12,12);
ellipse(450,430,12,12);
ellipse(450,455,12,12);
//左胳膊
line(270, 270, 390, 390);
line(300, 300, 300, 250);
//右胳膊
line(640, 310, 510, 390);
line(590, 340, 610, 300);
line(650, 370, 570, 353);
//帽子
fill('#0C94E8');
rect(373, 165, 155, 18);
rect(401, 95, 98, 70, 90, 90, 0, 0);
}
每段代码的作用在注释里写的比较清楚了,这里就不再赘述。
我觉得用编程来绘画与手绘在大体思路上有异曲同工之处,都要先做一些准备工作如确定纸张或画布大小,大概画多大的画,画的大概位置等等,然后确定一些具体的东西如在哪里下笔画,画的形状等等。
技术上我觉得手绘时手的灵巧和熟练程度及一些表现技巧比较重要,而编程绘图则更注重于代码和参数的准确性。
创作体验上我觉得编程和手绘各有千秋,都是有利有弊。比如,在画的过程中手绘的体验要比编程好因为手绘可以随意确定位置,线条之间独立性较强,某一地方画错只需要擦点这一处重新画而不会干扰到其它部分;而编程如果想要修改单独某一地方很可能会造成与其它部分连接不协调所以连带着还要修改其它地方,而且我觉得尤其在绘制比较复杂的图时编程过程中一点点调试参数真挺令人抓狂的,总有一种恨不得直接拿根笔在屏幕上画的冲动。但是,如果画面要做有规律性的某一部分整体性改动如平移缩放等,编程无疑比手绘更具优势,编程只需要改动表达式或语句即可而手绘则需要一点一点再画一遍了,还有就是编程画出来的图形都很标准,直线笔直曲线平滑,对于手残党手抖党非常非常友善。
个人创作偏好的话,我觉得还是要具体问题具体分析,比如,如果想抒发一些情感肯定手绘远比编程自由自在得多,而如果设计一些对图形要求比较高的图标界面什么的我会选图形形状标准的编程绘制。