[Processing]在画布上写文本

时间:2023-12-06 08:57:38
  • 准备工作
    • 这一步只是我强迫症犯了哈,这个随意,画几根线而已。每一小格10个像素,中格50,大格100像素
    •  void setup()
      {
      size(,);
      } void draw()
      {
      background(,,);
      //translate(width/2,height/2);
      Aix(,,width,height,);
      Aix(,,width,height,);
      Aix(,,,,);
      Aix(,,,,);
      stroke();
      strokeWeight();
      line(-width,, width,);
      line(,-height, ,height); DrawText();
      } float weight = ;
      float del = ;
      float lonW = ;
      float lonH = ;
      void Aix(float w,float d,float lw,float lh,float st)
      {
      weight = w;
      del = d;
      lonW = lw;
      lonH = lh;
      stroke(st);
      strokeWeight(weight);
      for(int i = ;i <= width;i+=del)
      {
      line(i,-lonH, i,lonH);
      }
      for(int i = ;i >= -width;i-=del)
      {
      line(i,-lonH, i,lonH);
      }
      for(int i = ;i <= height;i+=del)
      {
      line(-lonW,i, lonW,i);
      }
      for(int i = ;i >= -height;i-=del)
      {
      line(-lonW,i, lonW,i);
      }
      } void DrawText()
      { }

      [Processing]在画布上写文本

  • 打印文字
    •  text(String str,float x,float y[,float z]);//在某位置显示文本,默认为白色的文本,可用 fill() 方法填充颜色
      text(char[] chars,int start,int end,float x,float y[,float z]);
      text(String str,float x1,float y1,float x2,float y2);//在两个点决定的矩形内显示字符串
      text(float num,float x,float y[,float z]);
       void DrawText()
      {
      String str = "Hello World";
      text(str,,);
      }

      [Processing]在画布上写文本

    • 默认文字是白色的,所以如果一开始背景是浅色的话回看不清楚,这一点要注意。可用用 fill(); 方法改变颜色
  • 字体大小
  •  void DrawText()
    {
    String str = "Hello World"; textSize();//修改字体大小
    text(str,,);
    }

    [Processing]在画布上写文本

  • 对其方式
    • textAlign(h[,o]); 其中,h表示水平对齐方式,o表示垂直对齐方式,可填入宏
      • h
        • RIGHT 右对齐
        • CENTER
        • LEFT
      • o
        • TOP
        • CENTER
        • BOTTOM
        • BASELINE 基线对齐
    •  void DrawText()
      {
      String str = "Hello World"; noFill();
      stroke(#E0A000);
      rect(,, ,);//画矩形 textSize();
      textAlign(RIGHT,BOTTOM);//右下对齐
      text(str,,, ,);//在一个矩形内显示
      }

      [Processing]在画布上写文本

  • 设置行高
    •  void DrawText()
      {
      String str = "Hello World\nWorld Hello"; noFill();
      stroke(#E0A000);
      rect(,, ,); textSize();
      textLeading();
      text(str,,, ,);
      textLeading();
      text(str,,, ,);
      textLeading();
      text(str,,, ,);
      }

      [Processing]在画布上写文本

  • 文本宽度

    •  void DrawText()
      {
      String str = "Hello World\nWorld Hello"; noFill();
      stroke(#E0A000);
      rect(,, ,); textSize();
      textLeading();
      text(str,,, ,); //画一个框把一行文字框起来
      stroke(#FFFFCC);
      line(,, textWidth(str),);//用到了获取字符串宽度的方法 textWidth()
      line(,, textWidth(str),); stroke(#EECCEE);
      line(,, ,);
      line(textWidth(str),, textWidth(str),);
      }

      [Processing]在画布上写文本