何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 761
  • 記事 - 18
  • コメント - 3722
  • トラックバック - 222
ニュース
  • IE7以前では、表示がおかしい。div の解釈に問題があるようだ。
    IE8の場合は、「互換」表示を OFF にしてください。
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2011
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

最初から全部出来る人なんて、いないよね。

25年前。初めてパソコンに触れた頃。『マイコン BASIC マガジン』という雑誌がありました。同年代で、お世話になった人は多いはず。あるゲームだったともうけど、この様な絵が描かれていました。

・・・悲しいなぁ。PC-6001 の SCREEN 4 でこれを表示すると、色がにじんでとっても奇麗だったのよ。

で、この部分だけ取り出して、表示させるわけですわ。まぁ、次のようなコードになります。


// フォームに、ToolStripBar を貼り付け、ボタンを1つ追加しました。
// PictureBox を貼り付け、DockStyle を、Fill にしました。
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1() {
            InitializeComponent();
        }
        Bitmap bmp;
        private void toolStripButton1_Click(object sender, EventArgs e) {
            if (bmp != null) {
                bmp.Dispose();
            }
            bmp = new Bitmap(pictureBox1.Size.Width,
                pictureBox1.Size.Height,
                System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Graphics g = Graphics.FromImage(bmp);
            try {
                for (int x = 0; x < bmp.Width; x += 5) {
                    g.DrawLine(Pens.Blue,
                        new Point(0, 0),
                        new Point(x, bmp.Height));
                }
                for (int y = 0; y < bmp.Width; y += 5) {
                    g.DrawLine(Pens.Blue,
                        new Point(0, 0),
                        new Point(bmp.Width, y));
                }
                pictureBox1.Image = bmp;
            } finally {
                g.Dispose();
            }
        }
    }
}

プロジェクトファイルはここ

で、ここから、一歩ずつ、発展させていくんですね。

  1. ラインを、右上、右下から描くようにするには?

  2. 線の間隔(増分値)を、プログラムを変更することなく変更出来るようにするには?

  3. 線を、中心から引くようにするには?

  4. [button1]をクリックしなくても描画するためには?(フォームのサイズを変更すると、[button1]をクリックしないと再描画しません。これを、クリックしなくても再描画するようにするには?)

  5. 中心から、円形に線を引くには?

  6. 増分値を三角関数にするとどうなる?

  7. PC-6001 は、テレビに出力していました。テレビは、RGB の画素が並んでいるので、1ドットの線を引くと、赤と緑、または赤と青の線になりました(3色のはずなのに2色なのは、ブラウン管の構造による)。これを再現するには?

    縦に1ドットの線を引くと、赤になります。その隣に1ドットの線を引くと、緑(または青)になります。2ドット以上の幅のある線を引くと、白になります。

挑戦者求む!!出題のアレンジも!!ま、6番までは簡単だわね。7番は、赤と緑(または青)のストライプにすることは出来るけど、2ドット以上をどうやって白にしてやろう?

投稿日時 : 2010年6月23日 22:05
コメント
  • # re: 一歩ずつ
    みきぬ
    Posted @ 2010/06/24 12:00
    ・クリックした位置を中心にして描いてみる
    ・描いたものをファイルに保存できるようにしてみる
    ・Dispose 処理は今のままでいいのか考察してみる(ぉ
  • # re: 一歩ずつ
    青柳 臣一
    Posted @ 2010/06/24 15:00
    トラックバックできてないようなのでコメントにて失礼します。

    Small Basic でやってみた
    http://shinichiaoyagi.blog25.fc2.com/blog-entry-293.html

    CRT エミュレーション
    http://shinichiaoyagi.blog25.fc2.com/blog-entry-294.html

    こんなの書いてみました(笑)
  • # re: 一歩ずつ
    Jitta
    Posted @ 2010/06/27 18:54
    > ・Dispose 処理は今のままでいいのか考察してみる(ぉ
    (~_~;)ギクッ
  • # re: 一歩ずつ
    Jitta
    Posted @ 2010/07/16 22:02
    mixi の Visual Studio 2005 のコミュニティにあがっていた質問がおもしろかったのでそれをネタにしたいのだが、エントリ作っている時間がないorz
  • # Hey, that's the grse
    Gerry
    Posted @ 2014/05/10 0:45
    Hey, that's the grseteat! So with ll this brain power AWHFY?
  • # Hey, that's the grse
    Gerry
    Posted @ 2014/05/10 0:45
    Hey, that's the grseteat! So with ll this brain power AWHFY?
  • # Hey, that's the grse
    Gerry
    Posted @ 2014/05/10 0:45
    Hey, that's the grseteat! So with ll this brain power AWHFY?
タイトル  
名前  
Url
コメント