キー入力 GetKeyState のテストプログラム。Linux で動きますか? SECOND 2007/09/13 00:07:40 ├!続く SECOND 2007/09/13 00:08:55 (修正1回) └GetKeyStateはWin32APIなので,Linuxでは使... 白石 和夫 2007/09/13 10:55:15 ├http://hp.vector.co.jp/authors/VA008683/... 白石 和夫 2007/09/13 10:56:56 ├有り難うございます。是非御願いします。 SECOND 2007/09/13 18:34:38 └Ver6.4.3でASSIGN文のテストを行えるように... 白石 和夫 2007/09/17 13:51:28 └LinuxにGetKeyState相当のAPIがあるかどうか... 白石 和夫 2007/09/17 14:11:02
キー入力 GetKeyState のテストプログラム。Linux で動きますか? SECOND 2007/09/13 00:07:40 ツリーへ
キー入力 GetKeyState のテストプログラム。Linux で動きますか? |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/09/13 00:07:40 | |
!キー入力 GetKeyState のテストプログラム。Linux で動きますか?
!グラフ操作の、キー入力に、 ! GetKeyState を使用しています。Linux で動きますか? ! 9種類のフラクタル画像・追跡ツール2 OPTION ARITHMETIC COMPLEX DIM z0(0 TO 2^16) ! 最大N=16 LET i=complex(0,1) ! i= 虚数 SET LINE STYLE 1 SET TEXT FONT "",18 SET TEXT BACKGROUND "OPAQUE" ! 文字の背景を、背景色(色指標が0の色)で塗る。 LET item=1 LET N=1 !---------- DO SELECT CASE item CASE 1 LET a=0 LET b=(3+SQR(3)*i)/6 LET r=0 LET d=conj(b) CALL Afine("1.コッホの曲線", 0.5, 0.1, 0.6) CASE 2 LET a=(1+i)/2 LET b=0 LET r=conj(a) LET d=0 CALL Afine("2.レヴィのC曲線", 0.5, 0.3, 1.1) CASE 3 LET a=(1+i)/2 LET b=0 LET r=a LET d=0 CALL Afine("3.ドラゴン", 0.5, -0.05, 1) CASE 4 LET a=0 LET b=(1+i)/2 LET r=0 LET d=conj(b) CALL Afine("4.ペアノの曲線", 0.5, 0.2, 0.6) CASE 5 LET a=0 LET b=EXP(i*PI/7)/SQR(3) LET r=0 LET d=2/3 CALL Afine("5.葉脈曲線", 0.5, 0, 0.6) ! (題名, 中心X, 中心Y, 半幅) CASE 6 LET a=(1+i)/2 LET b=0 LET r=0 LET d=conj(a) CALL Afine("6.カニの行列", 0.34, 0.2, 0.7) CASE 7 LET a=0 LET b=1-EXP(-PI/5*i) LET r=0 LET d=conj(b) CALL Afine("7.クリヌキ正五角形", 0.5, 0.25, 0.6) CASE 8 LET a=(1+i)/2 LET b=0 LET r=0 LET d=-a CALL Afine("8.ブロッコリー", 0.58, 0.4, 1.3) CASE 9 LET a=(2+i)/4 LET b=i/4 LET r=(2-i)/4 LET d=-i/4 CALL Afine("9.高木関数のグラフ", 0.5, 0.3, 0.6) END SELECT LOOP !---------- SUB Afine(t$, xm, ym, h) ! (題名, 中心X, 中心Y, 半幅) SET WINDOW xm-h,xm+h, ym-h,ym+h DO CLEAR DRAW grid PLOT TEXT,AT xm-h*0.9,ym+h*0.8:"描画中" PLOT TEXT,AT xm-h*0.5,ym+h*0.8:t$ PLOT TEXT,AT xm+h*0.6,ym+h*0.8, USING "N= %%":N PLOT TEXT,AT xm-h*0.93,ym-h*0.8:"ESC:終了" PLOT TEXT,AT xm-h*0.88,ym-h*0.9:"←:曲線選択" PLOT TEXT,AT xm-h*0.23,ym-h*0.8:"↑:N+1" PLOT TEXT,AT xm-h*0.23,ym-h*0.9:"↓:N−1" PLOT TEXT,AT xm+h*0.35,ym-h*0.8:"HM:N= 00" PLOT TEXT,AT xm+h*0.35,ym-h*0.9:"→:曲線選択" LET cx=0 CALL f0f1s(N, 0) ! z=0 の写像。 記憶のみ。 LET cx=0 CALL f0f1(N, 1) ! z=1 の写像。 z=0 の記憶と線で結ぶ。 PLOT TEXT,AT xm-h*0.9,ym+h*0.8:" " IF N=16 THEN beep !続く |
├!続く SECOND 2007/09/13 00:08:55 (修正1回) ツリーへ
Re: キー入力 GetKeyState のテストプログラム。Linux で動きますか? |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/09/13 00:08:55 ** この記事は1回修正されてます | |
!続く
CALL keyin SELECT CASE ky CASE 27 STOP !Esc CASE 37 IF item=1 THEN LET item=9 ELSE LET item=item-1 !← EXIT DO CASE 39 IF item=9 THEN LET item=1 ELSE LET item=item+1 !→ EXIT DO CASE 36 LET N=0 !Home CASE 38 IF N<16 THEN LET N=N+1 !↑ CASE 40 IF 0<N THEN LET N=N-1 !↓ CASE ELSE ! ←抜けていた。(2007.09.13) END SELECT LOOP END SUB !---------- セルフ・アファイン集合 DEF f0(z)=a*z+b*conj(z) DEF f1(z)=r*(z-1)+d*conj(z-1) +1 !------ 全て z=0 の写像。 記憶のみ。 SUB f0f1s(k, z) IF 0<k THEN CALL f0f1s(k-1, f0(z)) CALL f0f1s(k-1, f1(z)) ELSE LET z0(cx)=z LET cx=cx+1 END IF END SUB !------ 全て z=1 の写像。 z=0 の記憶z0() と線で結ぶ。 SUB f0f1(k, z) IF 0<k THEN CALL f0f1(k-1, f0(z)) CALL f0f1(k-1, f1(z)) ELSE DRAW lin_z0(z) LET cx=cx+1 END IF END SUB !------ z0()~z の写像の直線を描き、z 側の85%位置に、* のマークを付ける。 PICTURE lin_z0(z) SET LINE COLOR MOD(cx,16)+1 PLOT LINES: re(z0(cx)),im(z0(cx)); re(z),im(z) IF N<7 THEN PLOT POINTS: re(z0(cx))*0.15+re(z)*0.85, im(z0(cx))*0.15+im(z)*0.85 END PICTURE !------ !仮想キーコード、GetKeyState(12) is always ON (Win98SE) !Enter 13 =0dh !Shift 16 =10h !Ctrl 17 =11h !Alt 18 =12h !Esc 27 =1bh !空白 32 =20h (半角/全角) 同じ !PgUp 33 =21h 「!」ではない !PgDn 34 =22h 「"」ではない !End 35 =23h 「#」ではない !Home 36 =24h 「$」ではない !← 37 =25h 「%」ではない !↑ 38 =26h 「&」ではない !→ 39 =27h 「'」ではない !↓ 40 =28h 「(」ではない !0〜9 48〜57 =30h~39h !A〜Z 65〜90 =41h~5ah !テンキーの0〜9 96〜105 =60h~69h !------ SUB keyin DO LOOP UNTIL 0<=GetKeyState(ky) DO FOR ky=27 TO 40 IF GetKeyState(ky)<0 THEN EXIT FOR NEXT ky WAIT DELAY 0.05 LOOP UNTIL ky<40+1 END SUB END |
└GetKeyStateはWin32APIなので,Linuxでは使... 白石 和夫 2007/09/13 10:55:15 ツリーへ
Re: キー入力 GetKeyState のテストプログラム。Linux で動きますか? |
返事を書く ノートメニュー |
白石 和夫 <fbdfvqwhki> 2007/09/13 10:55:15 | |
GetKeyStateはWin32 APIなので,Linuxでは使えません。
Windows版のASSIGNに相当する機能をLinux版にも追加しようと考えているので,それが実現できれば,GetKeyState相当のこともできるようになるかも知れません。 |
├http://hp.vector.co.jp/authors/VA008683/... 白石 和夫 2007/09/13 10:56:56 ツリーへ
Re: GetKeyStateはWin32APIなので,Linuxでは使... |
返事を書く ノートメニュー |
白石 和夫 <fbdfvqwhki> 2007/09/13 10:56:56 | |
├有り難うございます。是非御願いします。 SECOND 2007/09/13 18:34:38 ツリーへ
Re: GetKeyStateはWin32APIなので,Linuxでは使... |
返事を書く ノートメニュー |
SECOND <cszcthjjdj> 2007/09/13 18:34:38 | |
有り難うございます。是非御願いします。
|
└Ver6.4.3でASSIGN文のテストを行えるように... 白石 和夫 2007/09/17 13:51:28 ツリーへ
Re: GetKeyStateはWin32APIなので,Linuxでは使... |
返事を書く ノートメニュー |
白石 和夫 <fbdfvqwhki> 2007/09/17 13:51:28 | |
Ver 6.4.3でASSIGN文のテストを行えるようにしました(隠し命令です)。
文法はWindows版と同じですが,呼び出し規約はCDECLに変更しています。 Windows版ヘルプは http://www.geocities.jp/thinking_math_education/BASICHelp/html/basi40z0.htm です。 |
└LinuxにGetKeyState相当のAPIがあるかどうか... 白石 和夫 2007/09/17 14:11:02 ツリーへ
Re: Ver6.4.3でASSIGN文のテストを行えるように... |
返事を書く ノートメニュー |
白石 和夫 <fbdfvqwhki> 2007/09/17 14:11:02 | |
LinuxにGetKeyState相当のAPIがあるかどうかが問題なのですが,どなたかご存知の方はいませんか?
|