ab.com コミュニティ https://www.activebasic.com/forum/ |
|
N88BASICのプログラムはどうすれば動作できますか https://www.activebasic.com/forum/viewtopic.php?t=2399 |
ページ 2 / 2 |
作成者: | kikiriri [ 2008年12月07日(日) 04:30 ] |
記事の件名: | すみません |
すみませんでした。 親切なご回答に感謝してます。 |
作成者: | 渡辺真 [ 2008年12月29日(月) 16:04 ] |
記事の件名: | FreeBASIC でも動きました。 |
小修正で、FreeBASICでも動きました。 http://makotowatana.ld.infoseek.co.jp/F ... html#start |
作成者: | kikiriri [ 2008年12月31日(水) 17:33 ] |
記事の件名: | 位数(input "1から8程度",ct)について考察してみてください |
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の付き合いはできないかもしれません 参考までに?????? |
ページ 2 / 2 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |