📜  p5.js |排版 | sherX()函数(1)

📅  最后修改于: 2023-12-03 15:03:27.259000             🧑  作者: Mango

p5.js | sherX()函数

简介

sherX() 是 p5.js 库中的一种文本排版函数,用于快捷地设置文字的字体、大小、样式、颜色、对齐等属性,使得文本内容更加美观、易读,从而提高用户体验。该函数可用于绘制 2D 和 3D 的文本字符串,也可以用于获取文本的宽度、高度等信息。

用法
语法
sherX(str, x, y, [options])

其中,参数 str 是要绘制的文本字符串,参数 xy 是文本字符串的起始坐标,参数 options 是一个可选的对象,用于设置文本属性。如果不设置 options,则使用默认的属性。

属性

以下是 sherX() 函数中可用的属性列表:

属性名 | 类型 | 默认值 | 说明 ---|---|---|--- fontSize | number | 16 | 文字大小(以像素为单位) fontWeight | string | normal | 文字粗细(如 normalboldfontStyle | string | normal | 文字样式(如 normalitalicfontFamily | string | "sans-serif" | 字体名称 textAlign | string | "left" | 文字对齐方式(如 leftcenterrighttextBaseline | string | "alphabetic" | 文字基线(如 topmiddlebottomfillColor | color / string | "black" | 填充颜色 strokeColor | color / string | null | 描边颜色 strokeWeight | number | 0 | 描边宽度

其中,color 是一种 p5.js 中表示颜色的数据结构,可以使用如下方式初始化:

  • 使用 Web 颜色值:如 "red""#FF0000"
  • 使用 RGB 值:如 color(255, 0, 0) 表示红色;
  • 使用 RGBA 值:如 color(255, 0, 0, 128) 表示半透明的红色。
示例

以下是一个使用 sherX() 函数的示例:

function setup() {
  createCanvas(400, 400);
  sherX("Hello, World!", 50, 50, {
    fontSize: 32,
    fontFamily: "Arial",
    fillColor: color(255, 0, 0),
    strokeColor: "white",
    strokeWeight: 2,
    textAlign: "center",
    textBaseline: "middle"
  });
}

该示例绘制了一个红色的、带有白色描边的、居中对齐的、大小为 32 像素的 "Hello, World!" 文本字符串。

返回值

sherX() 函数没有返回值,它会直接在画布上绘制文本。如果需要获取文本的宽度、高度等信息,则需要使用 p5.js 的 textWidth()textAscent()textDescent() 等函数。其中,textWidth(str) 返回文本字符串 str 的宽度(以像素为单位),textAscent() 返回当前字体的上升部分的高度,textDescent() 返回当前字体的下降部分的高度。

以下是一个获取文本宽度的示例:

function setup() {
  createCanvas(400, 400);
  let str = "Hello, World!";
  let x = 50;
  let y = 50;
  let options = {
    fontSize: 32,
    fontFamily: "Arial",
    fillColor: color(255, 0, 0),
    strokeColor: "white",
    strokeWeight: 2,
    textAlign: "center",
    textBaseline: "middle"
  };
  sherX(str, x, y, options);
  let w = textWidth(str); // 获取文本宽度
  noFill();
  stroke(0, 255, 0);
  rect(x - w / 2, y - options.fontSize / 2, w, options.fontSize); // 绘制文本框
}

该示例先使用 sherX() 绘制文本字符串,然后利用 textWidth() 获取文本宽度,并绘制一个文本框以显示该宽度。

总结

sherX() 是 p5.js 文本排版中非常有用的函数,它可以通过设置文本属性,让文本内容更加美观、易读,从而提高用户体验。如果您正在开发网页或应用程序,或者是进行数据可视化等工作,那么 sherX() 函数会是您非常有用的工具之一。