空欄の部分を埋めていただけないでしょうか。

解決


delphi  2010-01-25 22:41:35  No: 37259

begin
  with Form1.PaintBox1.Canvas do
    begin
      c の値に応じて,ブラシとペンの色を定める;          //  ???
       (例:  if c=1 then  "ブラシとペンを赤にする"
                      else  "ブラシとペンを青にする";)

      中心が (x,y) で半径が r の円をかく ;               //  ???

     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with PaintBox1.Canvas do
    begin
      Brush.Color := clBlue;  Rectangle(0,0,500,280);    // 長方形 (500 X 280)
      Circle(250,140,20,1);                              // 円     (半径 20)
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
 var x1,y1,x2,y2,dx,i : integer;
begin
  dx := 1;
  x1 := 250;  y1 := 140;

  with PaintBox1.Canvas do
    begin
      i := 0;
      repeat
        if (x1<=20) または (x1>=480)) ならば,dx を (-1) 倍する ;   //  ???  壁にぶつかったとき,進行方向を逆向きにする

        x2 := x1 + dx;  y2 := y1;                          // (x1,y1) は古い位置,(x2,y2) は新しい位置

        Circle(??, ??, 20, ?);                             //  ???  前に描いた円を「消す」
        Circle(??, ??, 20, ?);                             //  ???  新たに赤い円を描く

        x1 := x2;       y1 := y2;
        sleep(2);
        i := i+1;
      until i>=1000;
    end;
end;

end.


Kenny  2010-01-25 22:55:25  No: 37260

宿題は自分でしましょう(笑)。
D8以降「Circle」というメソッドが増えたのですか? >ALL
まずそれからね。


delphi  2010-01-25 23:13:05  No: 37261

D6ですが、初心者なのでまったくわかりません


Kenny  2010-01-25 23:26:15  No: 37262

まず、Circle()という関数は、少なくとも私のDelphiにはないので、おそらくどこかで独自に定義してあるはず。
procedure TForm1.Button1Click(Sender: TObject);にCircle(250,140,20,1); とあるので、
おそらく引数は最初3つがx座標、y座標、半径  だとして、第4引数がPenの太さかな?それだと回答不能。
第4引数が1=描画 2=消去なら2を渡せばいい。
泣いてばかりじゃ家に帰れない。


monaa  2010-01-26 00:35:39  No: 37263

興味があるので質問です。
まず、これは課題でしょうか?
だとすると、大学?短大?高校?、そんでもって理系?文系?総合?
そもそも私はこの問題自体が回答者を小馬鹿にしているように思えます。
出題者の意図がさっぱりです。
私の質問に答えてくれたら穴埋め引き受けます。


通りすがり  2010-01-26 01:34:52  No: 37264

procedure Circle(x, y, r, c: Integer);
var
  X1, Y1, X2, Y2: Integer;
begin
  with Form1.PaintBox1.Canvas do
    begin
      {c の値に応じて,ブラシとペンの色を定める;          //  ???
       (例:  if c=1 then  "ブラシとペンを赤にする"
                      else  "ブラシとペンを青にする";)}
      if c=1 then
      begin
        Brush.Color := clRed;
        Pen.Color   := clRed;
      end
      else
      begin
        Brush.Color := clBlue;
        Pen.Color   := clBlue;
      end;

      {中心が (x,y) で半径が r の円をかく}
      X1 := x-r;  Y1 := y-r;
      X2 := x+r;  Y2 := y+r;
      Ellipse(X1,Y1,X2,Y2);               //  ???

     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with PaintBox1.Canvas do
    begin
      Brush.Color := clBlue;  Rectangle(0,0,500,280);    // 長方形 (500 X 280)
      Circle(250,140,20,1);                              // 円     (半径 20)
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
 var x1,y1,x2,y2,dx,i : integer;
begin
  dx := 1;
  x1 := 250;  y1 := 140;

  with PaintBox1.Canvas do
    begin
      i := 0;
      repeat
        {if (x1<=20) または (x1>=480)) ならば,dx を (-1) 倍する ;}   //  ???  壁にぶつかったとき,進行方向を逆向きにする
        if (x1<=20) or (x1>=480) then
          dx := -1*dx;
        
        x2 := x1 + dx;  y2 := y1;                          // (x1,y1) は古い位置,(x2,y2) は新しい位置

        Circle(x1, y1, 20, 0);                             //  ???  前に描いた円を「消す」
        Circle(x2, y2, 20, 1);                             //  ???  新たに赤い円を描く

        x1 := x2;       y1 := y2;
        sleep(2);
        i := i+1;
      until i>=1000;
    end;
end;

end.

https://www.petitmonte.com/bbs/answers?question_id=6770
どこぞの宿題?


あなよし  2010-02-02 02:23:36  No: 37265

あざーすwww
おかげでできましたwww


>> 常連の、「あなよし」さんへ  2010-02-03 03:20:46  No: 37266

質問者は、delphi さんなのかな?

取り敢えず、解決で良いよね?。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加