最初から全部出来る人なんて、いないよね。
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();
}
}
}
}
で、ここから、一歩ずつ、発展させていくんですね。
-
ラインを、右上、右下から描くようにするには?
-
線の間隔(増分値)を、プログラムを変更することなく変更出来るようにするには?
-
線を、中心から引くようにするには?
-
[button1]をクリックしなくても描画するためには?(フォームのサイズを変更すると、[button1]をクリックしないと再描画しません。これを、クリックしなくても再描画するようにするには?)
-
中心から、円形に線を引くには?
-
増分値を三角関数にするとどうなる?
-
PC-6001 は、テレビに出力していました。テレビは、RGB の画素が並んでいるので、1ドットの線を引くと、赤と緑、または赤と青の線になりました(3色のはずなのに2色なのは、ブラウン管の構造による)。これを再現するには?
縦に1ドットの線を引くと、赤になります。その隣に1ドットの線を引くと、緑(または青)になります。2ドット以上の幅のある線を引くと、白になります。
挑戦者求む!!出題のアレンジも!!ま、6番までは簡単だわね。7番は、赤と緑(または青)のストライプにすることは出来るけど、2ドット以上をどうやって白にしてやろう?
投稿日時 : 2010年6月23日 22:05