ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 00:22

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 18 件の記事 ]  ページ移動 1つ前へ 1 2
作成者 メッセージ
 記事の件名: すみません
投稿記事Posted: 2008年12月07日(日) 04:30 
すみませんでした。
親切なご回答に感謝してます。


通報する
ページトップ
   
投稿記事Posted: 2008年12月29日(月) 16:04 
小修正で、FreeBASICでも動きました。

http://makotowatana.ld.infoseek.co.jp/F ... html#start


通報する
ページトップ
   
投稿記事Posted: 2008年12月31日(水) 17:33 
Const GSIZE As real = 256
GScreen(GSIZE,GSIZE)
input "1から8程度",ct
lenn = GSIZE / (2 ^ ct)
x = GSIZE - GSIZE / (2 ^ (ct + 1))
y = GSIZE / (2 ^ (ct + 1))
d = 270
drawA(ct - 1, x, y, d, lenn)
End

Sub drawA(ct , x , y , d , lenn)
If ct < 0 Then Exit Sub
d = d - 90 : drawB(ct - 1, x, y, d, lenn) : myDrawLine(x, y, d, lenn)
d = d + 90 : drawA(ct - 1, x, y, d, lenn) : myDrawLine(x, y, d, lenn)
drawA(ct - 1, x, y, d, lenn) : d = d + 90 : myDrawLine(x, y, d, lenn)
drawB(ct - 1, x, y, d, lenn) : d = d - 90
End Sub

Sub drawB(ct, x , y , d ,lenn)
If ct < 0 Then Exit Sub
d = d + 90 : drawA(ct - 1, x, y, d, lenn) : myDrawLine(x, y, d, lenn)
d = d - 90 : drawB(ct - 1, x, y, d, lenn) : myDrawLine(x, y, d, lenn)
drawB(ct - 1, x, y, d, lenn) : d = d - 90 : myDrawLine(x, y, d, lenn)
drawA(ct - 1, x, y, d, lenn) : d = d + 90
End Sub

Sub myDrawLine(x, y, d, lenn)
If d < 0 Then d = d + 360
If d >= 360 Then d = d - 360
oldx = x : oldy = y
Select Case d
Case 0 : x = x + lenn
Case 90 : y = y - lenn
Case 180 : x = x - lenn
Case 270 : y = y + lenn
End Select
Line(oldx, oldy)-(x, y)
End Sub

僕には手が届かないけど、
本当は、位数(ct)で正方形の大きさが変わるんですけど、
freebasicは知らないんですが、すみません。
再現されていればいいですが、
前のプログラム(ab)では、横長の長方形になってしまいます。
元のn88basicのプログラムがそうだったからかもしれませんが、すみません
TBのプログラムを参考にしてもらえれば、
正方形の大きさが変わる(位数って言うらしいんですが)
ほうが応用が利いてていいのかも、
僕自身ヒルベルト曲線について理解しているわけではなく、
直線を引く方向を再帰的に変えて(決めて)大きな正方形を描くわけですが、
こっちのほうが見ていて気持ちがいいです。
再帰は、自分自身の関数を呼び出して、なりったって、
いるというか、プログラムを読みやすくしたり、
可能にしたりしている、裏ではものすごい処理量になっている場合がある。
ので使い方に気をつけたほうがいいというところまで?です、すみません
階乗で、一杯一杯で、これは、
ヒルベルト曲線で、(階乗のように、単純でなく?(十分難しいという話もある?))
さっぱり分かりません。
直線の描画方向を、0度、90度、180度、270度の内どれかに決めて
書いていき、(すみません)わからないのでこの辺でやめときます。
毛虫のようにくねくねと線が描かれていく様子が、なんだか良いですね?
です。すみませんがfreebasicの付き合いはできないかもしれません
参考までに??????


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 18 件の記事 ]  ページ移動 1つ前へ 1 2

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot] & ゲスト[32人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean