面白いチャレンジ:
大きな単語のフォームを表示するアプリを作成しようとすると、ユーザーが入力した一連のテキストが繰り返し表示されます。私は今キャンバスJavafxを使用したビッグワードアプリ、面白いチャレンジ
public void writeOut(String bigWord, String littlewords){
HBox word = new HBox();
word.setPadding(new Insets(10,10,10,10));
String[] letters = bigWord.split("\\B");
littleWordArray = littlewords.split(" ");
inputText = littlewords;
private String getRandomSmallWord(){
int size = littleWordArray.length;
return littleWordArray[rand.nextInt(size)];
}
問題です:
//create pixel readers and writer to write to canvas
PixelReader pixreader = imga.getPixelReader();
PixelWriter pixwriter = gc.getPixelWriter();
//point arrays
ArrayList<Integer> xpoints = new ArrayList<>();
ArrayList<Integer> ypoints = new ArrayList<>();
//Read shape of letter by the color of its pixels against a white background
for(int readY=0;readY<imga.getHeight();readY++){
for(int readX=0;readX<imga.getWidth();readX++){
Color color = pixreader.getColor(readX, readY);
if(!color.equals(Color.WHITE)){
//color = Color.TRANSPARENT;
xpoints.add(readX);
ypoints.add(readY);
}
}
}
は私がして、ユーザから単語の寄せ集めを得る:
私は手紙A
の画像からすべてのポイントを取得するためにPixelReader
を使用していましたA
私はその金型内にテキストを一様に書きたいと思っています...
私はいくつか失敗しました
for(int ix = 0;ix<xpoints.size();ix+=100){
String nextWord = getRandomSmallWord();
int nextwordlength = nextWord.length();
int currentX = xpoints.get(ix);
int currentY = ypoints.get(ix);
gc.strokeText(nextWord,currentX,currentY);
//gc.strokeText(nextWord,currentX+5,currentY+5);
//gc.strokeText(getRandomSmallWord(),(currentX+nextwordlength),currentY,30.0);
System.out.println("("+currentX+", "+currentY+")");
}
私はあなたの知恵を私に貸し出しています!
私はあなたが求めているものを理解していません。あなたはあなたが望む結果の例を含むイメージを持っていますか? 'bigWord'と' littlewords'の値の例を挙げられますか? – VGR
私はすべての文字の黒と白のブロックイメージを持っていますが、私は過去のAを得ていませんが、pixreaderはそのイメージを構成するすべての点の座標をすべて描画します。 bigWordとlittlewordはユーザーの入力に関係なく、その部分は無事です。 – madmax
例入力とサンプル出力を使って質問をすぐに更新できるようになればなるほど、私はあなたの問題をより早く理解することができます。私はあなたが文字Aのピクセルを保存していることを理解していますが、それらのピクセルで何をしようとしているのか分かりません。 – VGR