新しく発言する EXIT インデックスへ
針がどの目盛りをさしているのか?

  針がどの目盛りをさしているのか? もりの 2004/02/10 23:00:20 
  暇だったので作りました。 shino 2004/02/11 09:28:38 
   ├後半部分です。 shino 2004/02/11 09:32:06 
   │└書き忘れていましたが、 shino 2004/02/11 09:42:38 
   │ └申し出ありがとう もりの 2004/02/11 11:27:37 
   └想像以上にいいですね^^ もりの 2004/02/11 11:45:04 

  針がどの目盛りをさしているのか? もりの 2004/02/10 23:00:20  ツリーへ

針がどの目盛りをさしているのか? 返事を書く
もりの 2004/02/10 23:00:20
針がもっと長くないと
はりがもっときちんと
指定した目盛りをさす
針目盛りが
0、10、50、100、500、1000
10きざみ
100きざみ
をきちんと
さし
それがよみとれること

どなたか「ひろさんの作ってくれた はかりの プログラムを
改良できる方いられますか?」

めもりと数字がはっきりしていて
読み取れること
それが条件なんです
このままでは、つかいえないな?という
状況です。
どなたか さらに改良してくれますか?

  暇だったので作りました。 shino 2004/02/11 09:28:38  ツリーへ

Re: 針がどの目盛りをさしているのか? 返事を書く
shino 2004/02/11 09:28:38
暇だったので作りました。
とりあえず一キログラムの秤です。
色や秤の種類はなどの設定はあとで変えられるようにします。
前の部分です。

PUBLIC NUMERIC gs(2),m1,m2,m3,m4,ws,bi,ci,di,rate,rc(4),gc(4),bc(4)
SET COLOR mode "NATIVE"
OPTION ANGLE DEGREES
SET TEXT JUSTIFY "center","half"
DECLARE EXTERNAL picture body,memori,hari
DECLARE EXTERNAL SUB mover,bg

LET ws=600 !画面のサイズ
SET bitmap SIZE ws,ws
SET WINDOW -0.5*ws,0.5*ws,-0.5*ws,0.5*ws

REM 初期化
LET gs(1)=1000 !秤の型(グラム)
IF gs(1)>2000 THEN
LET gs(2)=gs(1)/10
LET rate=10
ELSE
LET gs(2)=gs(1)
LET rate=1
END IF
LET m1=1
LET m2=1
LET m3=1
LET m4=1
LET bi=ws/4
LET ci=ws/3

REM 本体
SET DRAW mode hidden
LET di=90
CALL bg
SET DRAW mode explicit
DO
SET DRAW mode hidden
mouse poll x,y,l,r
IF l=1 AND ABS(x)<bi AND ABS(y)<bi THEN CALL mover
SET DRAW mode explicit
WAIT DELAY 0.01
loop

END

EXTERNAL PICTURE memori(ta,lw)
SET LINE width lw
PLOT LINES:0,1;0,1-ta
END picture

EXTERNAL PICTURE hari
PLOT LINES:0,0;1.35,0
END PICTURE

   ├後半部分です。 shino 2004/02/11 09:32:06  ツリーへ

Re: 暇だったので作りました。 返事を書く
shino 2004/02/11 09:32:06
後半部分です。

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.10*(i+0.1*dy),0.05*(i+0.1*dy),0.02*(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-10,bi;-0.25*ci-10+i,ci-36+dy;-0.25*ci+10-i,ci-36+dy;-0.25*ci+10-i,bi
PLOT AREA:0.25*ci+i-10,bi;0.25*ci-10+i,ci-36+dy;0.25*ci+10-i,ci-36+dy;0.25*ci+10-i,bi
SET AREA COLOR colorindex(0.16*i+0.2,0.03*i+0.2,0.01*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
SET AREA COLOR colorindex(0.16*i+0.2,0.03*i+0.2,0.01*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.16*i+0.2,0.03*i+0.2,0.01*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
LET i=i+INT(ci/200)
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
DRAW hari WITH SCALE(0.5*ci)*ROTATE(di)
LET theta=0
LET dtheta=3600/gs(2)
LET num=0
DO
IF m1=1 AND MOD(theta,10*dtheta)=0 THEN !100の目盛り(1000の目盛り)
DRAW memori(ci/2000,2) WITH SCALE(bi-10)*ROTATE(theta)
PLOT TEXT,AT (0.5*ci)*COS(90-theta),(0.5*ci)*SIN(90-theta):STR$(num)
LET num=num+100*rate
ELSEIF m2=1 AND MOD(theta,5*dtheta)=0 THEN !50の目盛り(500の目盛り)
DRAW memori(ci/2500,1) WITH SCALE(bi-10)*ROTATE(theta)
SET AREA COLOR colorindex(SIN(theta),SIN(theta),SIN(theta))
DRAW disk WITH SCALE(0.05*ci-ci/10000*theta)
ELSEIF m3=1 AND MOD(theta,dtheta)=0 THEN !10の目盛り(100の目盛り)
DRAW memori(ci/5000,1) WITH SCALE(bi-10)*ROTATE(theta)
END IF
IF m4=1 THEN DRAW memori(ci/10000,1) WITH SCALE(bi-10)*ROTATE(theta+0.5*dtheta) !5の目盛り(50の目盛り)
LET theta=theta+dtheta
LOOP WHILE theta<360
END PICTURE

EXTERNAL SUB mover
OPTION ANGLE DEGREES
DO
SET DRAW mode hidden
mouse poll x,y,l,r
LET di=ANGLE(x,y)
IF l=0 THEN EXIT DO
CALL bg
SET DRAW mode explicit
WAIT DELAY 0.03
LOOP
IF m4=0 THEN
LET dtheta=3600/gs(2)
ELSE
LET dtheta=1800/gs(2)
END IF
LET di=90-dtheta*INT((90-di+0.5*dtheta)/dtheta)
CALL bg
END SUB

EXTERNAL SUB bg
OPTION ANGLE DEGREES
CLEAR
SET AREA COLOR colorindex(1,1,1)
PLOT AREA:-ws,ws;ws,ws;ws,-ws;-ws,-ws
DRAW body
END sub

   │└書き忘れていましたが、 shino 2004/02/11 09:42:38  ツリーへ

Re: 後半部分です。 返事を書く
shino 2004/02/11 09:42:38
書き忘れていましたが、
指針の位置(おもりの重さ)を変えるには、
文字盤上でドラッグして下さい。
5グラム毎に変えられます。(初期設定)
他に気になることがあったら教えて下さい。

   │ └申し出ありがとう もりの 2004/02/11 11:27:37  ツリーへ

Re: 書き忘れていましたが、 返事を書く
もりの 2004/02/11 11:27:37
申し出ありがとう
ございました
使ってみて
気になるところが
あったら
またお願いします
とりあえず
ありがとう

   └想像以上にいいですね^^ もりの 2004/02/11 11:45:04  ツリーへ

Re: 暇だったので作りました。 返事を書く
もりの 2004/02/11 11:45:04
想像以上にいいですね^^
ありがとう
教室やコンピュータ室の電子ボードで
見せることが前提なので
はりについてはこだわってくれますか
先端がとがったあかい矢印・・とがった
三角形でもいいかも
はりのねもとから先端の赤い部分までは
ネイビーblue
とにかく指示棒みたいに
したいわけです
説明しやすく
こどもにもわかりやすくということです
また改良
おまちしています
1kg以外もサポートできれば
理想的ですね
10kgまでとかね
よろしくお願いします
またあとで掲示板みてみます
今週金曜日に授業で
使います^^


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