投稿者 スレッド: 四角形の画き方教えて  (Read 5178 times)

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
四角形の画き方教えて
« 投稿日:: 2018年 7月 26日 , 午前 08:48:57 »
広場にも書いたんですが。
四角形の画き方がわかりません。
helpを見てもできませんでした。

ヤッホー

  • ゲスト
Re:四角形の画き方教えて
« Reply #1 投稿日:: 2018年 7月 26日 , 午後 05:15:27 »
出来ましたが
もっと、スマートな方法を教えてください。

gscreen(640,320)

circle(150,150),125,0

circle(150,150),62.5,2

circle(150,150),31.25,4

circle(150,150),15.625,6

line(150,150)-(275,150),8

line(150,150)-(150,275),10

circle(150,150),6,12

circle(150,150),3,16

circle(150,150),1.5,0


line(25,25)-(275,25)
line(25,25)-(25,275)
line(275,275)-(25,275)
line(275,275)-(275,25)

takeuchi

  • 管理人
  • *****
  • 投稿: 96
Re:四角形の画き方教えて
« Reply #2 投稿日:: 2018年 7月 26日 , 午後 10:32:18 »
Line (x1,y1)-(x2,y2),,B
で四角形が書けます。「BASIC入門」-「グラフィック操作」18ページに書いてあります。
Help の Line の項目にも説明があります。

line(25,25)-(275,25)
line(25,25)-(25,275)
line(275,275)-(25,275)
line(275,275)-(275,25)

は,
line(25,25)-(275,275),,B
で実現されます。

それから,
circle(150,150),125,0
circle(150,150),62.5,2
circle(150,150),31.25,4
circle(150,150),15.625,6
circle(150,150),6,12
circle(150,150),3,16
circle(150,150),1.5,0

のように似た命令が並んでいるときは, 適当な変数を導入してFor文などの繰り返し文で
一気に書くように工夫してみましょう。

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #3 投稿日:: 2018年 7月 27日 , 午前 08:14:00 »
ご返信

ありがとうございました。

そーなんですよね、対角線の座標を与えれば、四角かけた記憶があるなと思ってました。

line文で書くのですね。

helpをもっと利用しなくちゃと思いました。

だけど、正方形が円に外接するように描けてとてもうれしかったですよ。

これからもよろしくお願いします。

あと円ですが、点の代わりになるものをと、小さくしながら、どのくらいの半径がちょうどいいか試行錯誤しました。

なので、半径を少しずつ小さくして、for文を用いるなんて発想として思い浮かびませんでした。

Pset文ではどうですか。

小さな点を大きな点にする方法ってありますか?


kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #4 投稿日:: 2018年 7月 27日 , 午前 08:41:07 »
gscreen(640,320)

for r=0 to 125 step 5

circle(150,150),r,0

next r

line(25,25)-(275,275),5,b

だいぶシンプルでわかりやすくなりました。

ご助言ありがとうございました。

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #5 投稿日:: 2018年 7月 29日 , 午前 08:32:28 »
gscreen(640,320)

for r=0 to 125 step 5

circle(150,150),r,0

next r

line(25,25)-(275,275),5,b

pset(150,150),2

pset文ですが、何とか見える、緑色の点が描けました。

色が、背景色と同じだったのかして。

今回は見える点が、描けました。

がんばったーーーーーーーーー

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #6 投稿日:: 2018年 7月 29日 , 午後 12:05:09 »
円を描きたいんですが

pset文で、以下の、プログラムを書きましたが。

エラーとなり、だめです。

ご助言お願いします。

ここがおかしいよ、とか、これはこういうエラーだから、もう少し考え直せなど。

よろしくお願いします。

以下プログラム


gscreen(640,320)

a=0

b=0

for a=0 to 275 step0.000001

 for b=0 to 275 step0.000001

(a-150)^2+(b-150)^2=125^2

 

 next y

next x

pset(x,y),3
 
end

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #7 投稿日:: 2018年 7月 29日 , 午後 12:44:19 »
以下プログラムを修正したつもりなんですが。
gscreenは出ますが、あとなにも現れません。

ご助言お願いします。

gscreen(640,320)

a=0

b=0

for a=0 to 275 step 0.000001

 for b=0 to 275 step 0.000001

a=sqr(125^2-(25-150)^2)+150

b=sqr(125^2-(25-150)^2)+150

pset (a,b),12 

 next b

next a


 
end

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #8 投稿日:: 2018年 7月 29日 , 午後 12:53:06 »
極座標にすれば早そうですが。

今の自分では、すぐにはプログラムできません。


kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #9 投稿日:: 2018年 7月 29日 , 午後 01:15:00 »
if文で工夫しますね!!

gscreen(640,320)

a=0

b=0

for a=0 to 275 step0.000001

 for b=0 to 275 step0.000001

if (a-150)^2+(b-150)^2=125^2 then pset(a,b),14

 

 next b

next a


 
end


何も出てきません???

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #10 投稿日:: 2018年 7月 29日 , 午後 01:38:57 »
gscreen(640,320)

x=0

y=0

for x=0 to 275 step0.000001

 for y=0 to 275 step0.000001

if (x-150)^2+(y-150)^2=125^2 'xとyが円の方程式を満たせば(真ならば座標に点を打つ、偽ならば for next ループに戻る)

then pset(x,y),4 else next x next y

 

   

 next y

next x


 
end


コメントの部分ができません???

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #11 投稿日:: 2018年 7月 29日 , 午後 01:40:35 »
gscreen(640,320)

x=0

y=0

for x=0 to 275 step0.000001

 for y=0 to 275 step0.000001

if (x-150)^2+(y-150)^2=125^2 'xとyが円の方程式を満たせば(真ならば座標に点を打つ、偽ならば for next ループに戻る)

then pset(x,y),4 else next x ; next y

 

   

 next y

next x


 
end

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #12 投稿日:: 2018年 7月 29日 , 午後 02:39:33 »
グラフィック処理の19ページを学習中

問題は、sin cos で円周上の点をどう打つか思い出せるかどうかです。
半径rの円周上の点は、r sin θ r cos θ θを細かく代入して書かせてもらいます。

n=3

for n=3 to 3000

gbackcolor="Black"
gscreen (300,300)
Window (-2,-2)-(2,2)
MathGraph On
GForceColor = "#555555"
Circle(0,0),1
ForeColor = "White"
For i=0 to n-1
   x0=Cos(2*Pi*i/n)
   y0=Sin(2*Pi*i/n)
   x1=Cos(2*Pi*(i+1)/n)
   y1=Sin(2*Pi*(i+1)/n)
   Line (x0,y0)-(x1,y1)
next i

next n

End


多角形をたくさん書いて、円にしようとしたが無理でした。

エラー

Tiny Basic for Windows Ver. 1.239(May 10, 2018) On Windows 7
OK
エラー:Block 文が正しくありません。FOR文に対応する文がありません。(1行, 1 桁)
OK

エラー:コマンド LET の実行で型の不一致が起きました。(7行, 14 桁)
OK

エラー:コマンド LET の実行で型の不一致が起きました。(7行, 14 桁)
OK

エラー:コマンド LET の実行で型の不一致が起きました。(7行, 14 桁)
OK

エラー:コマンド LET の実行で型の不一致が起きました。(7行, 14 桁)
OK

エラー:コマンド LET の実行で型の不一致が起きました。(9行, 14 桁)
OK

エラー:コマンド LET の実行で型の不一致が起きました。(9行, 14 桁)
OK




ご教授お願いします。すみません。

kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #13 投稿日:: 2018年 7月 29日 , 午後 03:16:00 »
n=5
GBackColor="Black"
GScreen(300,300)
Window (-2,-2)-(2,2)
MathGraph On
'GForeColor = "Cyan"
'Line (-2,0)-(2.0)
'Line (0,-2)-(0,2)
'GForeColor = "#555555"
Circle(0,0),1
ForeColor = "White"
For i=0 to n-1
   x0=Cos(2*Pi*i/n)
   y0=Sin(2*Pi*i/n)
   x1=Cos(2*Pi*(i+1)/n)
   y1=Sin(2*Pi*(i+1)/n)
   Line (x0,y0)-(x1,y1)
Next i
End
成功したが、x軸、y軸表示されず。
エラーです。
これから、nの値を、大きくして、円に、近づけたいです。

n=6000
GBackColor="Black"
GScreen(300,300)
Window (-2,-2)-(2,2)
MathGraph On
'GForeColor = "Cyan"
'Line (-2,0)-(2.0)
'Line (0,-2)-(0,2)
'GForeColor = "#555555"
Circle(0,0),1
ForeColor = "White"
For i=0 to n-1
   x0=Cos(2*Pi*i/n)
   y0=Sin(2*Pi*i/n)
   x1=Cos(2*Pi*(i+1)/n)
   y1=Sin(2*Pi*(i+1)/n)
   Line (x0,y0)-(x1,y1)
Next i
End

n=600とn=6000であまり変わりません。






kikiriri

  • 新参メンバー
  • **
  • 投稿: 67
Re:四角形の画き方教えて
« Reply #14 投稿日:: 2018年 7月 29日 , 午後 03:18:45 »
pdf になってから、コピーアンドペーストができません。

なので、エラーとなっても気にせず。
その箇所が円を描くのに関係なければ、
削除しました。

でも後味が悪いですね。


すっきりしません。