x軸,y軸を太い罫線で表示するには?

 投稿者:川村 健壱メール  投稿日:2010年 7月21日(水)16時59分35秒
  こんにちは。私は青森県立板柳高等学校教諭の川村と申します。
実は不等式の表す領域を十進BASICを使って授業をしています。
例えば,(x-a)^2+(y-b)^2<r^2の領域は以下のプログラムで行っています。

!(x-a)^2+(y-b)^2<r^2の領域を描く
INPUT  PROMPT "a=":a
INPUT  PROMPT "b=":b
INPUT  PROMPT "r=":r
INPUT  PROMPT "xの値をm刻みで⇒m=":m
INPUT  PROMPT "yの値をn刻みで⇒n=":n
DEF d=SQR((x-a)^2+(y-b)^2)
SET WINDOW -8,8,-8,8
DRAW GRID
CALL circle(a,b,r)
SET POINT STYLE 1
FOR x=-8 TO 8 STEP m
   FOR y=-8 TO 8 STEP n
      IF d<r THEN
         PLOT POINTS: x,y
      end if
   NEXT y
NEXT x
END

EXTERNAL SUB circle(a,b,r)
OPTION ANGLE DEGREES
FOR t=0 TO 360
   PLOT LINES: a+r*COS(t),b+r*SIN(t);
NEXT t
END SUB

これで実行すると,確かに領域を表すことができるのですが,x軸やy軸および目盛りの数字がグレーのため,プロジェクターで表示してもわかりにくい状態です。
私が作成したプログラムにx軸やy軸の罫線を黒で太くさらに目盛りの数字が黒で表示できるようにするには後どのような命令が必要でしょうか。
さらに,今のプログラムでは,2刻みで点線が表示されますが,その点線も黒で表示するにはどのような命令を加えればよいでしょうか。教えてください。よろしくお願い致します。
 

Re: x軸,y軸を太い罫線で表示するには?

 投稿者:山中和義  投稿日:2010年 7月21日(水)19時39分0秒
  > No.1310[元記事へ]

川村 健壱さんへのお返事です。

座標関連は、Library内GRID2.LIBを読み込んで修正すればよいと思います。
点については、SET POINT COLOR文がありませんので、デフォルトの黒色になると思います。
(m,nを0.01にすると黒ベタになる)
!(x-a)^2+(y-b)^2<r^2の領域を描く
INPUT  PROMPT "a=":a
INPUT  PROMPT "b=":b
INPUT  PROMPT "r=":r
INPUT  PROMPT "xの値をm刻みで⇒m=":m
INPUT  PROMPT "yの値をn刻みで⇒n=":n
DEF d=SQR((x-a)^2+(y-b)^2)
SET WINDOW -8,8,-8,8
DRAW GRID2(1,1) ! 座標 ←←←←←
CALL circle(a,b,r)
SET POINT STYLE 1
FOR x=-8 TO 8 STEP m
   FOR y=-8 TO 8 STEP n
      IF d<r THEN
         PLOT POINTS: x,y
      end if
   NEXT y
NEXT x
END

EXTERNAL SUB circle(a,b,r)
OPTION ANGLE DEGREES
SET LINE width 2 ! 線幅 ←←←←←
FOR t=0 TO 360
   PLOT LINES: a+r*COS(t),b+r*SIN(t);
NEXT t
END SUB


!Libraryフォルダ内 GRID2.LIBより

! 1998.7.22 修正
EXTERNAL PICTURE GRID2(sx,sy)
SET LINE width 2 ! 線幅 ←←←←←
ASK WINDOW L,R,B,T
ASK LINE STYLE S
ASK LINE COLOR C
SET LINE COLOR 8   ! 線色 ←←←←←
ASK TEXT COLOR TC
SET TEXT COLOR 1   ! 文字 ←←←←←
ASK TEXT JUSTIFY ts1$,ts2$
SET TEXT JUSTIFY "RIGHT","TOP"
SET LINE STYLE 1
PLOT LINES:L,0;R,0
PLOT LINES:0,B;0,T
SET LINE STYLE 3
FOR X=CEIL(L/sx)*sx TO INT(R/sx)*sx STEP sx
   PLOT LINES:X,B;X,T
   PLOT TEXT,AT X,0:STR$(X)
NEXT X
FOR Y=CEIL(B/sy)*sy TO INT(T/sy)*sy STEP sy
   PLOT LINES:L,Y;R,Y
   PLOT TEXT,AT 0,Y:STR$(Y)
NEXT Y
SET LINE COLOR C
SET LINE STYLE S
SET TEXT COLOR TC
SET TEXT JUSTIFY ts1$,ts2$
END PICTURE
 

Re: x軸,y軸を太い罫線で表示するには?

 投稿者:SECOND  投稿日:2010年 7月22日(木)04時55分50秒
  > No.1310[元記事へ]

!ずいぶん いじって すみません。

DEF d=SQR((x-a)^2+(y-b)^2)            !(x-a)^2+(y-b)^2< r^2の領域を描く
!
INPUT  PROMPT "a=":a
INPUT  PROMPT "b=":b
INPUT  PROMPT "r=":r
!
SET WINDOW -8,8,-8,8
!
ASK PIXEL SIZE (0,0 ; 8,8) h,v       !領域をハーフ・トーンにする刻み幅を求める。
LET m= 2*8/h
LET n= 2*8/v
!
SET COLOR MIX(15) 0, 0, 0            !グリッドの色を、r,g,b (0~1) で指定。(黒)
SET LINE width 2                     !xy軸の太さ
DRAW GRID(2,2)                       !目盛(x刻み,y刻み)
!
DRAW circle WITH SCALE(r)*SHIFT(a,b)
SET POINT STYLE 1
FOR x=-8 TO 8 STEP m
   FOR y=-8 TO 8 STEP n
      IF d< r THEN
         PLOT POINTS: x,y
      END IF
   NEXT y
NEXT x

END
 

Re: x軸,y軸を太い罫線で表示するには?

 投稿者:川村 健壱メール  投稿日:2010年 7月22日(木)14時00分11秒
  > No.1312[元記事へ]

SECONDさんへ

ありがとうございました。
助かりました。
これからもご指導ご鞭撻のほどよろしくお願いいたします。

川村 健壱
 

Re: x軸,y軸を太い罫線で表示するには?

 投稿者:川村 健壱メール  投稿日:2010年 7月22日(木)14時02分17秒
  > No.1311[元記事へ]

山中和義 様

ありがとうございました。
試してみましたが,見事に修正されていました。
これからもご指導ご鞭撻のほどよろしくお願いいたします。

川村 健壱
 

戻る