p5.js로 일본어 텍스트를 줄 바꿈
11596 단어 p5.js
p5.js에서는 일본어가 자동 개행되지 않음
Processing에서는 text()에 범위 지정하는 것으로 캐릭터 라인을 자동 개행해 줍니다. p5.js에도 범위 지정의 기능이 있습니다만, 일본어로는 현재 개행할 수 없습니다.
여기에서는 행의 문자수를 설정해 개행하는 방법을 해 보겠습니다.
영어 문자열의 경우
p5.jslet txt = "Hello! p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today's web."
function setup() {
createCanvas(200, 200);
}
function draw() {
background(200);
text(txt,0,0,width,height);
}
위의 txt와 같은 긴 문자열에 대해
text(txt,0,0,width,height);
와 같이 텍스트 박스의 범위를 지정하면, 캐릭터 라인이 자동적으로 개행된다.
일본어 문자열의 경우
p5.jslet txt = "こんにちは!p5.jsは、アーティスト、デザイナー、教育者、初心者がコーディングにアクセスできるようにすることを目的としたProcessingの本来の目的から始まるJavaScriptライブラリです。これを今日のWeb用に再解釈します。"
function setup() {
createCanvas(200, 200);
}
function draw() {
background(200);
text(txt,0,0,width,height);
}
이렇게 일본어 문자열이라면 개행되지 않는다. 일본어라도 좋은 곳에 반각 스페이스를 넣으면 개행되기 때문에, 반각 스페이스가 개행의 기준이 되고 있는 것 같다.
문자 수를 지정하고 줄 바꿈
코드
p5.jslet txt = "こんにちは!p5.jsは、アーティスト、デザイナー、教育者、初心者がコーディングにアクセスできるようにすることを目的としたProcessingの本来の目的から始まるJavaScriptライブラリです。これを今日のWeb用に再解釈します。"
var str1, str2, sliceStr;
var addBreakStr = "";
var wCount = 10;
function setup() {
createCanvas(200, 200);
sliceStr = txt;
for (var i = 0; i < txt.length / wCount; i++) {
str1 = sliceStr.slice(0, wCount);
str2 = sliceStr.slice(wCount);
addBreakStr += str1 + '\n';
sliceStr = str2;
}
}
function draw() {
background(200);
text(addBreakStr, 0, 0, width, height);
}
결과
해설
원래의 캐릭터 라인에, 일정한 문자수로 개행을 더하도록(듯이) 합니다.
문자 분할
p5.jsvar txt ="あいうえお"
txt.slice(2); //うえお
txt.slice(1,3) //いう
문자열 .slice로 문자열을 분할할 수 있다.
파라미터 하나로, 그 문자수 이후를 꺼냅니다(0은 1자째).
파라미터 2개로, 몇자째 이후, 몇자째까지를 꺼냅니다.
먼저 원래 문자열을 파괴하지 않도록 sliceStr, 분할 문자열을 넣는 str1, str2를 선언합니다.
p5.jsvar str1, str2, sliceStr;
sliceStr에 원래 문자열을 할당합니다.
p5.jssliceStr = txt;
여기에서는 개행하기까지의 문자수를 10자로 합니다.
p5.jsvar wCount = 10;
str1에 처음 10자를, str2에 그 이후의 문자열을 분할하고 할당합니다.
p5.jsstr1 = sliceStr.slice(0, wCount);
str2 = sliceStr.slice(wCount);
줄 바꿈 추가
문자열에 "\n"을 추가하여 줄 바꿈할 수 있습니다. 위에서 나눈 문자열을 "\n"으로 연결합니다.
빈 String 유형을 선언하고,
p5.jsvar addBreakStr = "";
위에서 분할한 처음 10자(str1)와 "\n"을 추가합니다.
p5.jsaddBreakStr += str1 + '\n';
반복하다
위의 작업을 for로 바꿉니다.
p5.jsfor (var i = 0; i < txt.length / wCount; i++) {
str1 = sliceStr.slice(0, wCount);
str2 = sliceStr.slice(wCount);
addBreakStr += str1 + '\n';
sliceStr = str2;
}
for로 반복하는 횟수는, 몇행이 되는지의 수가 됩니다.
문자열 길이/줄 바꿈까지의 문자 수
에서 계산하여 몇 줄이 되는지를 산출하고 있습니다.
p5.jstxt.length / wCount
일본어만이라면 깨끗하게 개행됩니다만, 영어도 들어가면 보코보코가 됩니다.
보코 보코를 수정하기 위해, 영문자를 0.5 카운트로 해도 영 단어가 이상한 곳에서 개행될 우려가 있습니다. 무언가 방법이 있으면 가르쳐주세요.
Reference
이 문제에 관하여(p5.js로 일본어 텍스트를 줄 바꿈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/motokiohkubo/items/c5fa4a1cda402b86f5d4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let txt = "Hello! p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today's web."
function setup() {
createCanvas(200, 200);
}
function draw() {
background(200);
text(txt,0,0,width,height);
}
text(txt,0,0,width,height);
let txt = "こんにちは!p5.jsは、アーティスト、デザイナー、教育者、初心者がコーディングにアクセスできるようにすることを目的としたProcessingの本来の目的から始まるJavaScriptライブラリです。これを今日のWeb用に再解釈します。"
function setup() {
createCanvas(200, 200);
}
function draw() {
background(200);
text(txt,0,0,width,height);
}
코드
p5.js
let txt = "こんにちは!p5.jsは、アーティスト、デザイナー、教育者、初心者がコーディングにアクセスできるようにすることを目的としたProcessingの本来の目的から始まるJavaScriptライブラリです。これを今日のWeb用に再解釈します。"
var str1, str2, sliceStr;
var addBreakStr = "";
var wCount = 10;
function setup() {
createCanvas(200, 200);
sliceStr = txt;
for (var i = 0; i < txt.length / wCount; i++) {
str1 = sliceStr.slice(0, wCount);
str2 = sliceStr.slice(wCount);
addBreakStr += str1 + '\n';
sliceStr = str2;
}
}
function draw() {
background(200);
text(addBreakStr, 0, 0, width, height);
}
결과
해설
원래의 캐릭터 라인에, 일정한 문자수로 개행을 더하도록(듯이) 합니다.
문자 분할
p5.js
var txt ="あいうえお"
txt.slice(2); //うえお
txt.slice(1,3) //いう
문자열 .slice로 문자열을 분할할 수 있다.
파라미터 하나로, 그 문자수 이후를 꺼냅니다(0은 1자째).
파라미터 2개로, 몇자째 이후, 몇자째까지를 꺼냅니다.
먼저 원래 문자열을 파괴하지 않도록 sliceStr, 분할 문자열을 넣는 str1, str2를 선언합니다.
p5.js
var str1, str2, sliceStr;
sliceStr에 원래 문자열을 할당합니다.
p5.js
sliceStr = txt;
여기에서는 개행하기까지의 문자수를 10자로 합니다.
p5.js
var wCount = 10;
str1에 처음 10자를, str2에 그 이후의 문자열을 분할하고 할당합니다.
p5.js
str1 = sliceStr.slice(0, wCount);
str2 = sliceStr.slice(wCount);
줄 바꿈 추가
문자열에 "\n"을 추가하여 줄 바꿈할 수 있습니다. 위에서 나눈 문자열을 "\n"으로 연결합니다.
빈 String 유형을 선언하고,
p5.js
var addBreakStr = "";
위에서 분할한 처음 10자(str1)와 "\n"을 추가합니다.
p5.js
addBreakStr += str1 + '\n';
반복하다
위의 작업을 for로 바꿉니다.
p5.js
for (var i = 0; i < txt.length / wCount; i++) {
str1 = sliceStr.slice(0, wCount);
str2 = sliceStr.slice(wCount);
addBreakStr += str1 + '\n';
sliceStr = str2;
}
for로 반복하는 횟수는, 몇행이 되는지의 수가 됩니다.
문자열 길이/줄 바꿈까지의 문자 수
에서 계산하여 몇 줄이 되는지를 산출하고 있습니다.
p5.js
txt.length / wCount
일본어만이라면 깨끗하게 개행됩니다만, 영어도 들어가면 보코보코가 됩니다.
보코 보코를 수정하기 위해, 영문자를 0.5 카운트로 해도 영 단어가 이상한 곳에서 개행될 우려가 있습니다. 무언가 방법이 있으면 가르쳐주세요.
Reference
이 문제에 관하여(p5.js로 일본어 텍스트를 줄 바꿈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/motokiohkubo/items/c5fa4a1cda402b86f5d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)