The textWidth () function returns an invalid value. Is there any way to fix it?
The screenshot shows that the line is longer than the text.
code:
String str="jjjjjjjjjjjjjjjjjjjj";
void setup(){
  
}
void draw(){
  background(255);
  
  textSize(93);
  fill(0);
  text(str,50,500);
  strokeWeight(3);
  line(50,600,50+textWidth(str),600);
}
Thanks in advance!
             
            
              
              
              
            
            
           
          
            
            
              Actually, there is a consistent deviation, not an invalid one, depending on the font size. I had this kind of issue. You can fix it by subtracting a multiplier depending on the font size. If you use a font other than the default font, you need to change this multiplier. You can determine the most appropriate value by trial and error. For your case;
float delta = 93 * 0.08;
line(50,600,50+textWidth(str) - delta, 600);
             
            
              
              
              
            
            
           
          
            
            
              In my experience it works better when you use
createFont and setFont so the text is defined
             
            
              
              
              3 Likes
            
            
           
          
            
            
              Thanks for the reply.
I experimented with different fonts and different text. Unfortunately with some fonts textWidth() still doesn’t work well.
Code:
String str="Hello! I am AniMan Otaku, and I love Rikka Takanashi so much!";
PFont font;
String fontName="Monospaced";
void setup(){
  font=createFont(fontName,36);
  textFont(font);
  printArray(PFont.list());
  /*
    don't work well: 
    
    SansSerif
    SansSerif-Bold
    Serif
    Serif-Bold
  */
}
void draw(){
  background(255);
  
  fill(0);
  text(str,50,500);
  strokeWeight(3);
  line(50,600,50+textWidth(str),600);
}
void mouseDragged(){
  
  if(mouseX/5f>0)
  font=createFont(fontName,mouseX/10f);
  textFont(font);
}
And I’m wondering if Serif, SansSerif, Monospaced are the fonts installed on my phone, or are they the standard processing fonts?