0

以下のコードは、文字列配列のオブジェクトを使用してらせんを描画します。テキストオブジェクトを水平に描画するのではなく(以下のコードの現在のx、y座標に基づいて)各インスタンスで約45度の角度で描画したいことを除いて、すべて問題ありません(テキストが水平に描画される場合) 、曲線の上部と下部に沿った集中ポイントで他のテキストと自然に重なります)。私はいくつかの方法を調査しましたが、私はまだこれらすべてに非常に慣れておらず、潜在的な解決策はすべて私を回避してきました.

String example = "";

String[] wordSet = split(example, " ");

float x, y;
float angle = 0;
float radiusSpiralLine = 10;

size (800, 800);
translate(width/2, height/2);
background(#ffffff);
smooth();
fill(0);

for (int i = 0; i < wordSet.length; i++) {


  angle += .05;
  radiusSpiralLine += .5;

  x = cos(angle) * radiusSpiralLine;
  y = sin(angle) * radiusSpiralLine;

  textSize(9);
  text(wordSet[i], x, y);

}
4

2 に答える 2

1

これは非常によく似た問題のチュートリアルです。基本的には、pushMatrix() によって射影行列を保存し、曲線上の文字の位置に従って変換および回転し、popMatrix() によって行列を復元する必要があります。テキストをどのように回転させたいのか正確にはわかりませんが、text()関数を次のように折りたたむだけで役立つかもしれません:

pushMatrix();
translate(x, y);
rotate(angle);
text(wordSet[i], 0, 0);
popMatrix(); 
于 2013-10-31T10:56:11.713 に答える