canvasについて


まさ08  2005-03-23 06:30:03  No: 13902

こんばんは。いつも参考にさせていただいております。
今、PaintBox1.Canvas.LineToにて
グラフを描画したいと考えているのですが、Canvas.LineToは実数は扱えないと
ヘルプに書いてありますが、小数をグラフに描画したい場合どのようにすればよろしいのでしょうか。
よろしくお願いします。


たかみちえ  URL  2005-03-23 07:17:59  No: 13903

LineToなどで扱うのは”ピクセル”なので、グラフで実数を扱うかどうかなんて言うのは別問題です。
何らかのルールを作って、実数を整数にマッピングして描画すればよいです(x10とか)。


ウォレス  2005-03-23 19:48:43  No: 13904

image1とbutton1を用意し、image1を400x400にする。

sin(x)を0〜π/2まで描画します。

勿論、以下のコードはlinetoを使ったときの不具合が出ますが、これは宿題ということで。

描画したい範囲を400x400(の90%)にマッピングしています。各値は整数ではないですが、この程度の大きさがあれば整数に丸めても(グラフとして眺めるには)概ね大丈夫です。

-------------------------------------------
const
  XWIDTH = 400;
  YWIDTH = 400;

procedure TForm1.Button1Click(Sender: TObject);
var
  yd,xd :double;
  y,x   :integer;
begin
  xd := 0;
  while xd < Pi/2 do
  begin
    yd := sin(xd);
    x :=         round(xd /(Pi/2) * XWIDTH *0.9 + XWIDTH *0.05);
    y := YWIDTH -round(yd         * YWIDTH *0.9 + YWIDTH *0.05);

    Image1.Canvas.LineTo(x,y);
    xd :=  xd +0.1;
  end;
end;


junki  2005-03-31 01:31:25  No: 13905

こんなのはどうでしょうか

http://blog.livedoor.jp/junki560/archives/17584026.html


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

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






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