日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Processing 字体变形

發布時間:2023/12/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Processing 字体变形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在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循環則是實現字體變形的關鍵,將圖片像素化以后比對字體顏色和背景顏色就可以將字體從背景中“摳”出來,然后想捏扁還是捏圓就看各人的喜好了~

轉載于:https://www.cnblogs.com/x5115x/p/3901196.html

總結

以上是生活随笔為你收集整理的Processing 字体变形的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。