1

Vanilla Processing にはshapeMode()、「図形が描画される場所」を変更する機能があります。可能であれば、ControlP5を使用して UI「コントローラー」を描画する同じ機能をどのように取得できますか?

具体的には、次のコードを試しました。

shapeMode(CENTER);
cp5.addButton("On/Off")
.setPosition(width/2, height/2)
.setSize(300, 300)
.setColorBackground(color(0, 113, 0));

そして、この結果を得ました:

スクリーンショット

しかし、私が見たいのはこれです:

ここに画像の説明を入力

明らかに何か.setPosition(width/2 - buttonWidth/2, height/2 - buttonWidth/2)が機能しますが、コードを最小限に抑えたいと思います。

4

1 に答える 1

2

関数を呼び出すshapeMode()と、関数で描画された形状のモードのみが変更されshape()ます。

shape()ControlP5 は、ボタンを描画する関数を使用しません。機能を利用していrect()ます。

関数を使用して、rectMode()長方形の描画方法を変更できます。詳細については、リファレンスを参照してください。

しかし、あなたが結果に満足するかどうかは疑わしい. ボタンの四角形は移動しますが、ボタンのテキストは移動しないため、すべてのテキストが中心から外れます。これは 1 つの問題にすぎません。他にもたくさんの問題があると思います。

私があなたなら、自分で計算します。コードを最小限に抑えることを本当に心配している場合は、オフセットを行うために必要な「ロジック」をカプセル化する独自のラッパー クラスまたはユーティリティ関数を作成できます。しかし、コードを読みやすく保守しやすくすることについてもっと心配する必要があります。

于 2016-08-04T13:51:37.153 に答える