新しく発言する EXIT インデックスへ
秤サイズ変更対応版

  秤サイズ変更対応版 shino 2004/02/12 22:18:33 
  EXTERNALSUBsetting shino 2004/02/12 22:25:52 
  │└EXTERNALSUBsetting2 shino 2004/02/12 22:27:14 
  すみませんが改良版を今 もりの 2004/02/12 22:26:33 
  │└送りました。 shino 2004/02/12 22:37:01 
  │ └返信しました もりの 2004/02/12 22:50:44 
  │  └wsは幾つにしましたか? shino 2004/02/12 23:14:36 
  はかりの台に表示される もりの 2004/02/12 22:29:15 
  │└ちょっと色を変えてみました。 shino 2004/02/12 23:02:43 
  書き換えました もりの 2004/02/13 00:39:16 
  設定のキャンセル動作を書いていませんでし... shino 2004/02/13 00:50:25 
   └すいません、間違えました。 shino 2004/02/13 00:58:49 
    └ありがとう もりの 2004/02/13 18:46:55 

  秤サイズ変更対応版 shino 2004/02/12 22:18:33  ツリーへ

秤サイズ変更対応版 返事を書く
shino 2004/02/12 22:18:33
前のプログラムのうち、
変更の必要がある箇所のみを書きます。
上書きして下さい。

EXTERNAL PICTURE body
OPTION ANGLE DEGREES
IF di>90 THEN LET di=di-360
LET dy=0.1*(270+di)
LET i=0
DO
SET AREA COLOR colorindex(0.005*c(1,1)*(0.5*i+0.1*dy),0.005*c(2,1)*(0.5*i+0.1*dy),0.005*c(3,1)*(0.5*i+0.1*dy)) !重りの色
PLOT AREA:-0.5*ci+2*i+dy,1.25*ci-36+dy;-0.5*ci+2*i+dy,1.25*ci+36-dy-2*i;0.5*ci-2*i-dy,1.25*ci+36-dy-2*i;0.5*ci-2*i-dy,1.25*ci-36+dy
SET AREA COLOR colorindex(0.15*i+0.25,0.15*i+0.25,0.15*i+0.25) !支柱の色
PLOT AREA:-0.25*ci+i-0.05*ci,bi;-0.25*ci-0.05*ci+i,ci-36+dy;-0.25*ci+0.05*ci-i,ci-36+dy;-0.25*ci+0.05*ci-i,bi
PLOT AREA:0.25*ci+i-0.05*ci,bi;0.25*ci-0.05*ci+i,ci-36+dy;0.25*ci+0.05*ci-i,ci-36+dy;0.25*ci+0.05*ci-i,bi
SET AREA COLOR colorindex(0.005*c(1,2)*i+0.2,0.005*c(2,2)*i+0.2,0.005*c(3,2)*i+0.2) !皿の色
PLOT AREA:-ci+3*i,1.25*ci-36+dy;-bi+i,ci-36+dy+3*i;bi-i,ci-36+dy+3*i;ci-3*i,1.25*ci-36+dy
SET AREA COLOR colorindex(0.005*c(1,3)*i+0.2,0.005*c(2,3)*i+0.2,0.005*c(3,3)*i+0.2) !本体の色
PLOT AREA:-bi+2*i,-bi+2*i;bi-2*i,-bi+2*i;bi-2*i,bi-2*i;-bi+2*i,bi-2*i
SET AREA COLOR colorindex(0.005*c(1,4)*i+0.2,0.005*c(2,4)*i+0.2,0.005*c(3,4)*i+0.2)!土台の色
PLOT AREA:-ci+i,-bi-2*i;-1.25*ci+4*i,-1.25*ci;1.25*ci-4*i,-1.25*ci;ci-i,-bi-2*i
LET i=i+1
LOOP WHILE i<=5
LET i=0
DO
SET AREA COLOR colorindex(i,i,i) !表示板
DRAW disk WITH SCALE(bi-10-2*SIN(90*i))*SHIFT(0,2.5-5*SIN(90*i))
LET i=i+0.2
LOOP WHILE i<=1
SET LINE COLOR colorindex(0,0,0)
PLOT LINES:-1.25*ci,-1.25*ci;1.25*ci,-1.25*ci
PLOT LINES:-ci,1.25*ci-36+dy;ci,1.25*ci-36+dy
LET theta=0
LET dtheta=3600/gs(2)
LET num=0
LET gg=0
SET TEXT COLOR colorindex(0,0,0)
DO
IF fon(4)=1 THEN DRAW memori(0.02,1,10) WITH SCALE(bi-0.05*ci)*ROTATE(-theta-0.5*dtheta) !5の目盛り(50の目盛り)
IF fon(3)=1 THEN !10の目盛り(100の目盛り)
DRAW memori(0.04,1,9) WITH SCALE(bi-0.05*ci)*ROTATE(-theta)
END IF
IF MOD(gg,5)=0 THEN !50の目盛り(500の目盛り)
IF fon(2)=1 THEN DRAW memori(0.08,1,8) WITH SCALE(bi-0.05*ci)*ROTATE(-theta)
SET AREA COLOR colorindex(0.8*w*c(1,3)*COS(theta)+0.2,0.8*w*c(2,3)*COS(theta)+0.2,0.8*w*c(2,3)*COS(theta)+0.2)
DRAW disk WITH SCALE(0.06*ci-ci/10000*theta)
END IF
IF MOD(gg,10)=0 THEN !100の目盛り(1000の目盛り)
IF fon(1)=1 THEN DRAW memori(0.1,2,7) WITH SCALE(bi-0.05*ci)*ROTATE(-theta)
IF fon(5)=1 THEN PLOT TEXT,AT (0.5*ci)*COS(90-theta),(0.5*ci)*SIN(90-theta):STR$(num)
DRAW hari WITH SCALE(0.5*ci)*ROTATE(di)
LET num=num+100*rate
END IF
LET theta=theta+dtheta
LET gg=gg+1
LOOP WHILE theta<360
END PICTURE

  EXTERNALSUBsetting shino 2004/02/12 22:25:52  ツリーへ

Re: 秤サイズ変更対応版 返事を書く
shino 2004/02/12 22:25:52
EXTERNAL SUB setting
LET di=0
LET ss=0.8*ws
DRAW rectangle(ws-20,ss,ws-20,ss,colorindex(0.5,0.8,0.6),2)
DRAW rectangle(ws-22,ss-20,ws-22,ss-2,colorindex(1,1,1),2)
SET LINE COLOR colorindex(0.3,0.6,0.4)
PLOT LINES:-ws+20,-ss;ws-20,-ss;ws-20,ss
PLOT LINES:ws-22,ss-20;-ws+22,ss-20;-ws+22,-ss+2
SET TEXT COLOR colorindex(1,1,1)
PLOT TEXT,AT -ws+50,ss-10:"設定"
SET TEXT COLOR colorindex(0,0,0)
DRAW rectangle(0.45*ws,0.45*ws,0.45*ws,0.45*ws,colorindex(0.3,0.3,0.3),1) WITH SHIFT(-0.8*bi,0.5*bi)
SET TEXT font "",7
DRAW body WITH SCALE(0.5)*SHIFT(-0.8*bi,0.5*bi)
SET TEXT font "",24
LET x=-ss
LET cord$="-"
SET LINE COLOR colorindex(0.5,0.5,0.5)
FOR k=1 TO 2
PLOT LINES:-ss+0.2*ci,-0.5*ci;ci-ss,-0.5*ci
DRAW rectangle(0.1*ci,0.1*ci,0.1*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(x,-0.5*ci)
PLOT TEXT,AT x,-0.5*ci:cord$
LET x=0
LET cord$="+"
NEXT k
SET TEXT font "",12
PLOT TEXT,AT 0.75*ci,ci:"秤の大きさ"
DRAW rectangle(0.4*ci,0.1*ci,0.4*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(0.75*ci,bi)
SET TEXT font "",24
PLOT TEXT,AT 0.75*ci,bi:STR$(gs(1)) &"g"
FOR i=1 TO 6
SET LINE COLOR colorindex(0.5,0.5,0.5)
DRAW rectangle(0.05*ci,0.05*ci,0.05*ci,0.05*ci,colorindex(1,1,1),3) WITH SHIFT(0.25*ci,0.5*ci-ci*i/8+0.1*ci)
SET TEXT font "",12
PLOT TEXT,AT bi,0.5*ci-ci*i/8+0.1*ci:line$(i+6) & "を表示する"
SET TEXT font "",10
DRAW checked(fon(i)) WITH SHIFT(0.25*ci,0.5*ci-ci*i/8+0.1*ci)
NEXT i
DRAW rectangle(0.2*ci,0.1*ci,0.2*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(0.5*ci,-ci)
DRAW rectangle(0.2*ci,0.1*ci,0.2*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(ci,-ci)
DRAW rectangle(0.4*ci,0.1*ci,0.4*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(0.75*ci,-0.5*ci)
DRAW rectangle(0.4*ci,0.1*ci,0.4*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(0.75*ci,-bi)
PLOT TEXT,AT 0.5*ci,-ci:"OK"
PLOT TEXT,AT ci,-ci:"キャンセル"
PLOT TEXT,AT 0.75*ci,-0.5*ci:"初期設定に戻す"
PLOT TEXT,AT 0.75*ci,-bi:"色の設定"
DRAW rectangle(0.02*ci,0.07*ci,0.02*ci,0.07*ci,colorindex(1,1,1),3) WITH SHIFT(-0.8*ws+0.2*ci+0.008*ci*gs(1)/100,-0.25*ci*(1+i))
SET DRAW mode explicit
SET TEXT font "",12
END SUB

  │└EXTERNALSUBsetting2 shino 2004/02/12 22:27:14  ツリーへ

Re: EXTERNALSUBsetting 返事を書く
shino 2004/02/12 22:27:14
EXTERNAL SUB setting2
LET di=0
LET ss=0.8*ws
DRAW rectangle(ws-20,ss,ws-20,ss,colorindex(0.5,0.8,0.6),2)
DRAW rectangle(ws-22,ss-20,ws-22,ss-2,colorindex(1,1,1),2)
SET LINE COLOR colorindex(0.3,0.6,0.4)
PLOT LINES:-ws+20,-ss;ws-20,-ss;ws-20,ss
PLOT LINES:ws-22,ss-20;-ws+22,ss-20;-ws+22,-ss+2
SET TEXT COLOR colorindex(1,1,1)
PLOT TEXT,AT -ws+50,ss-10:"設定"
SET TEXT COLOR colorindex(0,0,0)
DRAW rectangle(0.45*ws,0.45*ws,0.45*ws,0.45*ws,colorindex(0.3,0.3,0.3),1) WITH SHIFT(-0.8*bi,0.5*bi)
SET TEXT font "",7
DRAW body WITH SCALE(0.5)*SHIFT(-0.8*bi,0.5*bi)
SET TEXT font "",24
LET x=-ss
LET cord$="-"
SET LINE COLOR colorindex(0.5,0.5,0.5)
FOR k=1 TO 2
FOR i=1 TO 3
DRAW rectangle(0.1*ci,0.1*ci,0.1*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(x,-0.25*ci*(1+i))
PLOT TEXT,AT x,-0.25*ci*(1+i):cord$
IF k=1 THEN DRAW sbg(i,c(i,aa)/32) WITH SHIFT(x+0.1*ci,-0.25*ci*(1+i))
NEXT i
LET x=0
LET cord$="+"
NEXT k
SET TEXT font "",12
FOR i=1 TO 10
SET LINE COLOR colorindex(0,0,0)
DRAW rectangle(0.1*ci,0.05*ci,0.1*ci,0.05*ci,colorindex(c(1,i)*w,c(2,i)*w,c(3,i)*w),3) WITH SHIFT(ss,ci-ci*i/8+0.1*ci)
SET LINE COLOR colorindex(0.5,0.5,0.5)
DRAW rectangle(0.1*ci,0.05*ci,0.1*ci,0.05*ci,colorindex(1,1,1),3) WITH SHIFT(0.25*ci,ci-ci*i/8+0.1*ci)
SET TEXT font "",12
PLOT TEXT,AT bi,ci-ci*0.125*i+0.1*ci:line$(i) & "の色"
SET TEXT font "",10
PLOT TEXT,AT 0.25*ci,ci-ci*i/8+0.1*ci:"変更"
NEXT i
DRAW rectangle(0.2*ci,0.1*ci,0.2*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(0.5*ci,-ci)
DRAW rectangle(0.2*ci,0.1*ci,0.2*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(ci,-ci)
DRAW rectangle(0.4*ci,0.1*ci,0.4*ci,0.1*ci,colorindex(1,1,1),3) WITH SHIFT(0.75*ci,-0.5*ci)
PLOT TEXT,AT 0.5*ci,-ci:"OK"
PLOT TEXT,AT ci,-ci:"キャンセル"
PLOT TEXT,AT 0.75*ci,-0.5*ci:"初期設定に戻す"
SET DRAW mode explicit
SET TEXT font "",12
FOR k=1 TO 3
FOR i=1 TO 10
LET cf(k,i)=c(k,i)
NEXT i
NEXT k
END SUB

EXTERNAL SUB mon(otype,ss,i,l,code$)
SET LINE COLOR colorindex(0,0,0)
IF l=0 THEN
LET lc=1
ELSE
IF loc>6 THEN LET aa=loc-6
LET lc=0.8
END IF
SELECT CASE otype
CASE 1
IF l=1 THEN CALL changer2(i)
SET TEXT font "",24
SET LINE COLOR colorindex(0,0,0)
DRAW rectangle(0.1*ci,0.1*ci,0.1*ci,0.1*ci,colorindex(lc,lc,lc),3) WITH SHIFT(ss,-0.25*ci*(1+i))
PLOT TEXT,AT ss,-0.25*ci*(1+i):code$
CASE 2
IF l=1 THEN
FOR k=1 TO 3
DRAW sbg(k,c(k,aa)/32) WITH SHIFT(-0.8*ws+0.1*ci,-0.25*ci*(1+k))
NEXT k
END IF
SET TEXT font "",10
DRAW rectangle(0.1*ci,0.05*ci,0.1*ci,0.05*ci,colorindex(lc,lc,lc),3) WITH SHIFT(ss,ci-ci*0.125*i+0.1*ci)
PLOT TEXT,AT ss,ci-ci*0.125*i+0.1*ci:code$
CASE ELSE
END SELECT
SET TEXT font "",12
END sub

  すみませんが改良版を今 もりの 2004/02/12 22:26:33  ツリーへ

Re: 秤サイズ変更対応版 返事を書く
もりの 2004/02/12 22:26:33
すみませんが改良版を今
メールで送ってくれますか?
プロが長いのでメールでやりとり
してくれますか?
メルアドは

 stdoor24_12@hotmail.com

よろしく

  │└送りました。 shino 2004/02/12 22:37:01  ツリーへ

Re: すみませんが改良版を今 返事を書く
shino 2004/02/12 22:37:01
送りました。

  │ └返信しました もりの 2004/02/12 22:50:44  ツリーへ

Re: 送りました。 返事を書く
もりの 2004/02/12 22:50:44
返信しました
メニューがずれています

  │  └wsは幾つにしましたか? shino 2004/02/12 23:14:36  ツリーへ

Re: 返信しました 返事を書く
shino 2004/02/12 23:14:36
wsは幾つにしましたか?
300以下だと上手く表示されなかったと思います。
こちらでは正しく表示されているので、
あと考えられる原因としてはディスプレイ
の違いだと思います。

  はかりの台に表示される もりの 2004/02/12 22:29:15  ツリーへ

Re: 秤サイズ変更対応版 返事を書く
もりの 2004/02/12 22:29:15
はかりの台に表示される

1000g とかが

みにくいです
もっとはっきり見えるように
針のねもとはボールペンの
ノックタッチのようでは
どうですか?

  │└ちょっと色を変えてみました。 shino 2004/02/12 23:02:43  ツリーへ

Re: はかりの台に表示される 返事を書く
shino 2004/02/12 23:02:43
ちょっと色を変えてみました。
EXTERNAL SUB bgを次のように上書きして下さい。

EXTERNAL SUB bg
OPTION ANGLE DEGREES
CLEAR
DRAW rectangle(ws,ws,ws,ws,colorindex(1,1,1),2)
DRAW body
IF fon(6)=1 THEN
SET TEXT font "",48
SET TEXT COLOR colorindex(0,0,0)
PLOT TEXT,AT 0,-ci:STR$(gs(1)) & "g"
! ここから
SET TEXT COLOR colorindex(w*c(1,4),w*c(2,4),w*c(3,4))
PLOT TEXT,AT 0,-ci+3:STR$(gs(1)) & "g"
! ここまで
SET TEXT font "",12
END IF
FOR i=0 TO 5
DRAW rectangle(0.2*ci-i,0.1*ci-i,0.2*ci-i,0.1*ci-i,colorindex(0.2*i,0.2*i,0.2*i),2) WITH SHIFT(0.82*ws,-0.92*ws)
DRAW rectangle(0.2*ci-i,0.1*ci-i,0.2*ci-i,0.1*ci-i,colorindex(0.2*i,0.2*i,0.2*i),2) WITH SHIFT(bi,-0.92*ws)
NEXT i
SET TEXT COLOR colorindex(0,0,0)
SET TEXT font "",12
PLOT TEXT,AT 0.82*ws,-0.92*ws:"終了"
PLOT TEXT,AT bi,-0.92*ws:"設定"
END SUB

これでも駄目なら、上に示した箇所を削除して下さい。
針の根元の部分ですが、
円形を表示するのは少々面倒です。
四角形ならもう少し凝ることができます。

  書き換えました もりの 2004/02/13 00:39:16  ツリーへ

Re: 秤サイズ変更対応版 返事を書く
もりの 2004/02/13 00:39:16
書き換えました
とりあえずこれで
やってみます

ありがとう

さらに改良できましたら
メールで送ってください。

  設定のキャンセル動作を書いていませんでし... shino 2004/02/13 00:50:25  ツリーへ

Re: 秤サイズ変更対応版 返事を書く
shino 2004/02/13 00:50:25
設定のキャンセル動作を書いていませんでした。
次のように修正して下さい。

始めのPUBRIC NUMERICにfon2(6),gwを追加
EXTERNAL SUB pcheckの最初に
LET gw=gs(1)
FOR i=1 TO 6
LET fon2(i)=fon(i)
NEXT i
を追加
同じくEXTERNAL SUB pcheckの最後の
CASE 2 のあとに
LET gs(1)=gw
IF gs(1)>2000 THEN
LET gs(2)= gs(1)/10
LET rate=10
ELSEIF gs(1)<=200 THEN
LET gs(2)=gs(1)*10
LET rate=0.1
ELSE
LET gs(2)=gs(1)
LET rate=1
END IF
FOR i=1 TO 6
LET fon(i)=fon2(i)
NEXT i
を追加

また、実行中に画面サイズを変えたい場合は
本体、EXTERNAL SUB pcheck、EXTERNAL SUB pcheck2の
DO〜LOOP内のSET DRAW MODE EXPLICITの前に
IF r=1 THEN
LET ww=ws
INPUT PROMPT "画面サイズ変更":ws
IF ws>=300 THEN
SET bitmap SIZE 2*ws,2*ws
SET WINDOW -ws,ws,-ws,ws
LET bi=ws/2
LET ci=2*ws/3
CLEAR
DRAW rectangle(ws,ws,ws,ws,colorindex(1,1,1),2)
CALL setting
ELSE
 LET ws=ww
END IF
END IF
と書けば、
右クリックで画面サイズを変更することができます。

   └すいません、間違えました。 shino 2004/02/13 00:58:49  ツリーへ

Re: 設定のキャンセル動作を書いていませんでし... 返事を書く
shino 2004/02/13 00:58:49
すいません、間違えました。
画面サイズの変更で、追加する文の中に
CALL setting とありますが、
本体に書く場合、CALL bg
EXTERNAL SUB pcheck2 に書く場合、CALL setting2
として下さい。
一応メールで送っておきます。

    └ありがとう もりの 2004/02/13 18:46:55  ツリーへ

Re: すいません、間違えました。 返事を書く
もりの 2004/02/13 18:46:55
ありがとう
今日授業で使ってみましたが
とても評判がよかったです
でも日立では動きませんでした
ですからプロジェクターには
映せませんでした


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。