質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

1224閲覧

Processingで漢字の縦書きで文字を表示させたい(Mac版

退会済みユーザー

退会済みユーザー

総合スコア0

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2017/06/29 07:51

Windowsでは以下の様なコード、文字フォントで描画できるそうなのですが、Macではどの様な文字フォントを選択できるのでしょうか。

PFont gfont; void setup() { size(80, 160); background(0); smooth(); //漢字を含むフォントを利用する gfont = loadFont("MS-Gothic-24.vlw"); textFont(gfont, 20); noStroke(); noLoop(); } void draw() { fill(128); rect(0, 0, width, height); fill(255, 255, 0); //横幅は2文字より狭くする text("四字熟語", 30, 20, 30, 350); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

推測も含みます。

Windows/Macintosh(あるいはLinuxも?)True Type Fontが利用可能なんじゃないでしょうか?なのでシステムにインストールされている日本語グリフを含むフォントを用いれば同様の方法で縦書きが可能だと思います。

textSize(24);
などとすると、デフォルトで漢字が表示できるフォントを選んでいても漢字のグリフが失われ英字(多分ISO-8859の範囲内?)しか表示できなくなるように見えます。このためサイズを明示してテキストを描画したい場合は「ツール>フォント作成...」でフォントファイル(vlwファイル)を作成した上でご質問に書かれているようにloadFont()でフォントを明示しなければならないようです。

このとき注意すべきなのは日本語文字のグリフを含むフォントをサイズだけ指定してもダメで、「文字...」ボタンを押して「文字選択」ダイアログを開いた上でそのフォントの中で使用する文字種を明示しなければならないことです。そうしないとtextSize(24)などとしたときと同様ISO-8859の範囲の英字しか表示されなくなってしまいました。

文字選択ダイアログでは「全ての文字」を指定すると簡単なんですがフォントサイズが巨大になるので「Specific Unicode Blocks」を選んで、「必要最小限の文字種」のみ選択するとよいみたいです。とはいえ、漢字全部とかなを選ぶとそれなりのサイズになってしまうかも知れませんが・・・

投稿2017/06/29 08:39

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/06/29 13:11

ありがとうございます。textSizeが大きすぎたのが問題だったみたいです。 縦配置に関してですが、text("四字熟語", 30, 20, 30, 350);だと語の部分だけ二段目に描画されたりするのですが、これは何回かやって調節する必要があるでしょうか?
KSwordOfHaste

2017/06/29 13:24

そう思います。使っているフォントで漢字1文字分の幅がwピクセル程度だった場合、 text("四字熟語", x, y, wより少しだけ大きな値, 全ての文字を表示するのに充分な高さ); としなければならないので多少の試行錯誤が必要だと思います。
退会済みユーザー

退会済みユーザー

2017/06/29 13:26

ありがとうございます。 文章(例えば、縦2行など)を表示させる場合は、プログラム内で書くよりも写真を作って、写真を読み込ませた方がいいかもしれないと思ったのですが、ご意見を頂けると幸いです。
KSwordOfHaste

2017/06/29 13:39

確かにその方が簡単かも知れませんね・・・ そもそもこのやりかたは「左から右へ文字列を描画し、ある幅を超えたら改行」という「横書きの論理のまま」トリックで縦書きっぽくする手法なので縦2行にする場合は使えないと思います。あくまで縦1行ずつでないと厳しいですね。
退会済みユーザー

退会済みユーザー

2017/06/29 14:23

アドバイスありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問