p5.js | textDescent()函数
p5.js 中的textDescent()函数用于找出当前字体在其当前大小处的下降。下降可以定义为基线以下最长下降字符的距离,以像素为单位。
句法:
textDescent()
参数:此函数没有参数。
返回值:它返回一个数字,表示以像素为单位的下降。
下面的示例说明了 p5.js 中的textDescent()函数:
示例 1:此示例显示使用默认字体的文本下降。
let inputElem;
let currfontSize = 28;
let fontBaseline = 150;
function setup() {
createCanvas(600, 300);
// Create button to increase font size
let fontBtn = createButton("Increase Font Size");
fontBtn.mouseClicked(() => {
currfontSize += 1;
});
fontBtn.position(20, 70);
// Create input box
inputElem = createInput("");
inputElem.position(20, 40);
}
function draw() {
clear();
textSize(18);
text("Write in input to change the text and observe text descent", 10, 20);
textSize(currfontSize);
// This value depends on the font used
let fontScalar = 0.8;
// Display text and line if input not empty
let enteredText = inputElem.value();
if (enteredText != "") {
text(enteredText, 20, fontBaseline);
// Draw the Base line
stroke("black");
line(0, fontBaseline, width, fontBaseline);
// Draw the Descent Line
stroke("green");
descVal = textDescent() * fontScalar;
line(0, fontBaseline + descVal, width, fontBaseline + descVal);
noStroke();
textSize(18);
text("Text Descent Value: " + descVal, 20, 275);
}
}
输出:
示例 2:此示例显示使用自定义字体的文本下降。
let inputElem;
let currfontSize = 28;
let fontBaseline = 150;
let newFont;
function preload() {
newFont = loadFont("fonts/Montserrat.otf");
}
function setup() {
createCanvas(600, 300);
textFont(newFont);
// Create button to increase font size
let fontBtn = createButton("Increase Font Size");
fontBtn.mouseClicked(() => {
currfontSize += 1;
});
fontBtn.position(20, 70);
// Create input box
inputElem = createInput("");
inputElem.position(20, 40);
}
function draw() {
clear();
textSize(18);
text("Write in input to change the text and observe text descent", 10, 20);
textSize(currfontSize);
// This value depends on the font used
let fontScalar = 0.8;
// Display text and line if input not empty
let enteredText = inputElem.value();
if (enteredText != "") {
text(enteredText, 20, fontBaseline);
// Sraw the Base line
stroke("black");
line(0, fontBaseline, width, fontBaseline);
// Draw the Descent Line
stroke("green");
descVal = textDescent() * fontScalar;
line(0, fontBaseline + descVal, width, fontBaseline + descVal);
noStroke();
textSize(18);
text("Text Descent Value: " + descVal, 20, 275);
}
}
输出:
在线编辑器: https://editor.p5js.org/
环境设置: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/
参考: https://p5js.org/reference/#/p5/textDescent