1. 程式人生 > >[Processing]在畫布上寫文本

[Processing]在畫布上寫文本

ces strong set 改變 sel ESS nbsp leading size

  • 準備工作
    • 這一步只是我強迫癥犯了哈,這個隨意,畫幾根線而已。每一小格10個像素,中格50,大格100像素
    •  1 void setup()
       2 {
       3   size(1280,720);
       4 }
       5 
       6 void draw()
       7 {
       8   background(0,0,0);
       9   //translate(width/2,height/2);
      10   Aix(1,50,width,height,40);
      11   Aix(2,100,width,height,60);
      12   Aix(1,10,5,5,100);
      13   Aix(2,50,7,7,100);
      14   stroke(150);
      15   strokeWeight(3
      ); 16 line(-width,0, width,0); 17 line(0,-height, 0,height); 18 19 DrawText(); 20 } 21 22 float weight = 3; 23 float del = 100; 24 float lonW = 10; 25 float lonH = 10; 26 void Aix(float w,float d,float lw,float lh,float st) 27 { 28 weight = w; 29 del = d; 30 lonW = lw; 31 lonH = lh; 32 stroke(st);
      33 strokeWeight(weight); 34 for(int i = 0;i <= width;i+=del) 35 { 36 line(i,-lonH, i,lonH); 37 } 38 for(int i = 0;i >= -width;i-=del) 39 { 40 line(i,-lonH, i,lonH); 41 } 42 for(int i = 0;i <= height;i+=del) 43 { 44 line(-lonW,i, lonW,i); 45 } 46 for(int i = 0;i >= -height;i-=del)
      47 { 48 line(-lonW,i, lonW,i); 49 } 50 } 51 52 void DrawText() 53 { 54 55 }

      技術分享圖片

  • 打印文字
    • 1 text(String str,float x,float y[,float z]);//在某位置顯示文本,默認為白色的文本,可用 fill() 方法填充顏色
      2 text(char[] chars,int start,int end,float x,float y[,float z]);
      3 text(String str,float x1,float y1,float x2,float y2);//在兩個點決定的矩形內顯示字符串
      4 text(float num,float x,float y[,float z]);
      1 void DrawText()
      2 {
      3   String str = "Hello World";
      4   text(str,50,50);
      5 }

      技術分享圖片

    • 默認文字是白色的,所以如果一開始背景是淺色的話回看不清楚,這一點要註意。可用用 fill(); 方法改變顏色
  • 字體大小
  • 1 void DrawText()
    2 {
    3   String str = "Hello World";
    4   
    5   textSize(50);//修改字體大小
    6   text(str,50,50);
    7 }

    技術分享圖片

  • 對其方式
    • textAlign(h[,o]); 其中,h表示水平對齊方式,o表示垂直對齊方式,可填入宏
      • h
        • RIGHT 右對齊
        • CENTER
        • LEFT
      • o
        • TOP
        • CENTER
        • BOTTOM
        • BASELINE 基線對齊
    •  1 void DrawText()
       2 {
       3   String str = "Hello World";
       4   
       5   noFill();
       6   stroke(#E0A000);
       7   rect(0,0, 500,300);//畫矩形
       8   
       9   textSize(50);
      10   textAlign(RIGHT,BOTTOM);//右下對齊
      11   text(str,0,0, 500,300);//在一個矩形內顯示
      12 }

      技術分享圖片

  • 設置行高
    •  1 void DrawText()
       2 {
       3   String str = "Hello World\nWorld Hello";
       4   
       5   noFill();
       6   stroke(#E0A000);
       7   rect(0,0, 500,300);
       8   
       9   textSize(20);
      10   textLeading(20);
      11   text(str,0,0, 500,300);
      12   textLeading(40);
      13   text(str,150,0, 500,300);
      14   textLeading(80);
      15   text(str,300,0, 500,300);
      16 }

      技術分享圖片

  • 文本寬度

    •  1 void DrawText()
       2 {
       3   String str = "Hello World\nWorld Hello";
       4   
       5   noFill();
       6   stroke(#E0A000);
       7   rect(0,0, 500,300);
       8   
       9   textSize(20);
      10   textLeading(20);
      11   text(str,0,0, 500,300);
      12   
      13    //畫一個框把一行文字框起來
      14   stroke(#FFFFCC);
      15   line(0,0, textWidth(str),0);//用到了獲取字符串寬度的方法 textWidth()
      16   line(0,20, textWidth(str),20);
      17   
      18   stroke(#EECCEE);
      19   line(0,0, 0,20);
      20   line(textWidth(str),0, textWidth(str),20);
      21 }

      技術分享圖片

[Processing]在畫布上寫文本