码迷,mamicode.com
首页 > 其他好文 > 详细

Processing 字体变形

时间:2014-08-09 18:17:08      阅读:517      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   os   for   2014   

在Processing中做字体变形通常需要有以下基础知识:

1、PGraphics对象

2、图片像素化

制作过程也不复杂,代码如下:

 1 color ELLIPSE_COLOR = color(0);
 2 color LINE_COLOR = color(0, 125);
 3 color PGRAPHICS_COLOR = color(0);
 4 int LINE_LENGTH = 25;
 5 boolean reverseDrawing = false;
 6 PGraphics pg;
 7 PFont f = createFont("宋体", 42);
 8 void setup() {
 9   size(1280, 720,P2D);
10   pg = createGraphics(width, height, JAVA2D);
11   pg.beginDraw();
12   pg.textFont(f);
13   pg.textSize(300);
14   pg.textAlign(CENTER, CENTER);
15   pg.fill(PGRAPHICS_COLOR);
16   pg.text("麥塔威", pg.width/2, pg.height/2);
17   pg.endDraw();
18 }
19 void draw() {
20   int gridH = (int) map(mouseX, 0, width, 30, 100);
21   int gridV = (int) map(mouseY, 0, height, 15, 100);
22   float w = width/gridH;
23   float h = height/gridV;
24   float r = min(w, h);
25 
26   background(255);
27   strokeWeight(1);
28   for (int y=0; y<gridV; y++) {
29     for (int x=0; x<gridH; x++) {
30       float _x = x*w;
31       float _y = y*h;
32       color c = pg.get(int(_x), int(_y));
33       boolean textDraw = (c == PGRAPHICS_COLOR);
34       if (textDraw) {
35         noStroke();
36         fill(ELLIPSE_COLOR);
37         ellipse(_x, _y, r, r);
38       } else {
39         stroke(LINE_COLOR);
40         line(_x, _y, _x+LINE_LENGTH, _y+LINE_LENGTH);
41       }
42     }
43   }
44 }

其中,setup部分的pg操作都是在PGraphics对象上的操作,这个对象就类似于画布上的画布,而draw里面两个for循环则是实现字体变形的关键,将图片像素化以后比对字体颜色和背景颜色就可以将字体从背景中“抠”出来,然后想捏扁还是捏圆就看各人的喜好了~

bubuko.com,布布扣

Processing 字体变形,布布扣,bubuko.com

Processing 字体变形

标签:style   blog   http   color   java   os   for   2014   

原文地址:http://www.cnblogs.com/x5115x/p/3901196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!