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

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

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

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

Q&A

解決済

1回答

1910閲覧

if文の条件 processing

ddd_h

総合スコア12

Processing

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

0グッド

0クリップ

投稿2018/11/13 08:54

processing

1コード 2`PImage img; 3String lin, lim; 4int i, ln, lm; 5String lines[]; 6 7void setup() { 8 9 background(255); 10 11 img = loadImage("kougishiryou.jpg"); 12 size( img.width, img.height ); 13 image(img, 0, 0); 14 i = 0; 15 ln = 0; 16 lm = 1; 17 lines = loadStrings("test.txt"); 18} 19 20void draw() { 21 lin =lines[ln]; 22 lim =lines[lm]; 23 24 String[] co = split(lin, ','); 25 String[] co2 = split(lim, ','); 26 27 if (co.length==4) { 28 line(int(co[i]), int(co[i+1]), int(co[i+2]), int(co[i+3])); 29 } 30 if (int(co[i])-20 < int(co2[i]) && int(co2[i]) < int(co[i])+20 /*&& int(co[i+1])-20 < int(co2[i+1]) && int(co2[i+1]) < int(co[i+1])+20*/) { 31 //for (lm=1;lm==lines.length;lm++) { 32 stroke(255, 0, 0); 33 strokeWeight(3); 34 line(int(co[i]), int(co[i+1]), int(co[i+2]), int(co[i+3])); 35 //} 36 } 37 ln+=1; 38 39 if (ln == lines.length) noLoop(); 40} 41 42テキストファイル 4366,590,461,583 4466,590,461,583 45696,128,1244,12581 46102,294,593,293 4779,590,460,583 48693,478,819,517 49693,471,1222,462 50701,533,1108,526 51697,637,1237,626 5266,590,461,583 53 54テキストファイルに書かれたlineの座標を表示し,さらに近い位置にあるものをif文で調べて 55上から太い,赤いlineを引くというプログラムです. 56 57if文がうまく機能していません. 58誤差はlineの始点の座標で20を考えています. 59 60特別if文にこだわっているわけではないのですが,何か良い解決方法があればお願いします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

"近い位置にあるもの"の定義が不明ですが、
テキストの1列目と2列目を赤くするというなら以下のコードでできます。

stroke(255, 0, 0);
strokeWeight(3);
line(int(co[i]), int(co[i+1]), int(co[i+2]), int(co[i+3]));
の下に下記を追加
stroke(0, 0, 0);
strokeWeight(1);

これで距離が遠い場合は黒い細い線が描かれて、距離が近い場合は赤い太線が描かれます。

投稿2018/11/13 14:56

YOshim

総合スコア1085

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

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

ddd_h

2018/11/14 03:09

すみません、うまくいかないです。 黒い線しか引かれないです。
ddd_h

2018/11/14 03:31

すみません、引かれていましたが、これをすべてのテキストのデータでやりたいです. 1行目と2行目の始点のx座標、y座標が1行目のx,y座標±20の距離にあれば赤いlineが引かれるというふうにしたくて...1行目と3行目、1行目と4行目、2行目と3行目というふうにすべてのデータを比較したいのです.
YOshim

2018/11/14 03:58

for文を2重にしてやればよいかと思います。 for(){ i行目をセット for(){ j行目をセット i行目とj行目を比較し、近ければ赤い太線を引く } }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問