###前提・実現したいこと
キーボードで表示(矢印の色や向き)が変わるプログラムを作成しています。
- T:緑色
- t:黒色
- 9:赤色
- ↑:画面中央方向
- ↓:画面外側方向
###発生している問題・エラーメッセージ
画面の解像度を変えると表示されなくなりました。
0. 1920×1080:表示された
0. 1280×720:表示されなかった
###該当のソースコード
※キーボードで変化が見られるのは,先に挙げた5つのキーだけになっています。
※他の割り当てられたキーや変数はa()のように別タブで作成して使用しています。
int dW , dH , dW30 , dW15 , dW10 , dH30 , dH15 , dH10 ; int DoRaP = 1, DoRaR = 1, DoRaY = 1, DaT = 1, tcg = 0, tcr = 0, pcg = 0, pcr = 0, rcg = 0, rcr = 0, ycg = 0, ycr = 0; float alpha , beta , p , q , r , theta , phi , psi , dv , dh; void setup() { size(displayWidth, displayHeight);//ディスプレイデータを取得しフルサイズを描写範囲とする frameRate(60);//フレームレートを設定 } void keyPressed() {//今後消去する予定 switch(key) { case 'w': DoRaP = 1; break; case 's': DoRaP = -1; break; case 'd': DoRaY = 1; break; case 'a': DoRaY = -1; break; case 'p': pcg = 0; pcr = 0; break; case 'P': pcg = 255; pcr = 0; break; case '6': pcg = 0; pcr = 255; break; case 'r': rcg = 0; rcr = 0; break; case 'R': rcg = 255; rcr = 0; break; case '5': rcg = 0; rcr = 255; break; case 'y': ycg = 0; ycr = 0; break; case 'Y': ycg = 255; ycr = 0; break; case '8': ycg = 0; ycr = 255; break; case 't': tcg = 0; tcr = 0; break; case 'T': tcg = 255; tcr = 0; break; case '9': tcg = 0; tcr = 255; break; } switch(keyCode) { case RIGHT: DoRaR = 1; break; case LEFT: DoRaR = -1; break; case DOWN: DaT = 1; break; case UP: DaT = -1; break; } } void draw() { background(0, 0, 0);//黒色背景 smooth();//滑らかな描写 stroke(0, 255, 0);//線の色:緑 fill(0, 255, 0);//充填の色:緑 global_variable();//グローバル変数の呼び出し scale(1, -1);//x軸右側正&y軸上側正 translate(dW/2, -dH/2);//画面中央に原点移動 a(); }
void global_variable(){ dW=displayWidth; dH=displayHeight; dW30=dW/30; dW15=dW/15; dW10=dW/10; dH30=dH/30; dH15=dH/15; dH10=dH/10; }
void a() { float diagonal = sqrt(dW^2+dH^2);//How long 対角線? stroke(tcr, tcg, 0); for (int i=1; i>=-1; i=i-2) {//縦軸対象に鏡写し for (int ii=1; ii>=-1; ii=ii-2) {//横軸対象に鏡写し scale(i, ii); rotate(atan2(dH, dW));//描写画面の対角線の角度にx軸を回転 translate(30*diagonal, 0); line(2*DaT*dW30, 0, -DaT*dW30, 0);//右上矢印基線 line(2*DaT*dW30, 0, DaT*dW30, dH15/3);//右上上側線 line(2*DaT*dW30, 0, DaT*dW30, -dH15/3);//右上下側線 translate(-30*diagonal, 0);// rotate(-atan2(dH, dW));//回転させたx軸を元に戻す scale(i, ii); } } stroke(0, 0, 0); }
###試したこと
strokeWeight()を設けて線の太さを変えてみました(Tweakモードで確認)が,
2.での解像度では変化が見られませんでした。
しかし,1.の解像度では確り線の太さが変わっていました。
何が問題なのかがつかめない状況です。
###補足情報(言語/FW/ツール等のバージョンなど)
Processing3.3.5を使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/31 04:01
2017/08/31 05:29