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

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

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

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

Q&A

解決済

1回答

320閲覧

文字列を途中から異なるポイント数で表示するスマートな方法

P5_USER

総合スコア73

Processing

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

0グッド

0クリップ

投稿2018/03/02 08:39

いつもお世話になっています。

前提・実現したいこと

0から100,000までを200刻みで分割し(例:0,200,400,600,......)
上2~3桁と下3桁のフォントのポイント数を異なる値で設定・表示できるようにしたい。
###コード
これだと、text(i, x, y);の処理で、下3桁とそれ以外の桁の文字の大きさが変わっていない。

processing

1void scale() 2{ 3int num_max = 100000;//最大値 4int num_interval = 200;//数字の刻み間隔 5 6translate(displayWidth / 2, displayHeight / 2); 7for(int i = 0; i <= num_max; i += num_interval) 8{ 9int x = 0, y = 0; 10text(i, x, y); 11y += 10 12} 13translate(-displayWidth / 2, -displayHeight / 2); 14}

###今思いついていること
下3桁とそれ以外を2つに分けてそれぞれポイント数を設定する。

右揃えに数字を表示するので、下3桁のポイント数だけx座標をずらす。

何か簡潔で良い方法を思いついた方はいらっしゃいませんか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

下3桁とそれ以外を2つに分けてそれぞれポイント数を設定する。

右揃えに数字を表示するので、下3桁のポイント数だけx座標をずらす。

概ねその方針でよいと思います。ちなみに「下3桁のポイント数だけx座標をずらす」ではなく、

(1) 上の桁をあるポイント数で描画
(2) 上の桁の文字列の幅(ポイント数ではなく文字列の画面上のピクセル数)だけx座標を増やす
(3) テキストのサイズを変更して下の桁を描画

とすべきと思います。(2)はそれをするための関数textWidth()が用意されてます。

何か簡潔で良い方法を思いついた方はいらっしゃいませんか?

「何か簡潔で良い方法」は「ひとまずできてから」探るとよいでしょう。

今提示しておられるコードは目的のことを実現しようとしている跡が見られません(またコンパイルエラーもあります)。もう少しご自分でどういうふうに書けそうかをやってみてうまくいかない点を尋ねた方がよいと思います。


Processingの標準ライブラリー関数のリファレンスは1ページに全関数が載る程度の数しかありません。一般のGUIライブラリーに比べれば圧倒的に少ないのではないでしょうか。そういう訳で関係しそうなものを片端からみていけば「どんな関数があるか」「どういう方法になるか」は見つけやすいと思います。

投稿2018/03/02 09:26

KSwordOfHaste

総合スコア18392

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問