Рисование графов

Previous  Top  Next

    
 

 

 

...вы могли бы использовать объект TCanvas, чем рисовать самому. В вашем случае сгодится компонент TImage, он имеет bitmap и свойство canvas, на котором очень удобно рисовать.

 

Пример: (Создайте новую форму, добавьте к ней Image и Button. Добавьте следующий код к обработчику события нажатия кнопки)

 

Code:

var

x, l: Integer;

y, a: Double;

begin

Image1.Picture.Bitmap := TBitmap.Create;

Image1.Picture.Bitmap.Width := Image1.Width;

Image1.Picture.Bitmap.Height := Image1.Height; {Эти три строчки могут быть

размещены в обработчике Form1.Create}

l := Image1.Picture.Bitmap.Width;

for x := 0 to l do

begin

   a := (x / l) * 2 * Pi; {Преобразуем позицию по оси X к углу между 0 & 2Pi}

   y := Sin(a); {Ваша функция должна находиться здесь}

   y := y * (Image1.Picture.Bitmap.Height / 2); {Масштабируем по оси Y}

   y := y * -1; {Инвертируем Y, верх экрана это 0 !}

   y := y + (Image1.Picture.Bitmap.Height / 2);

     {Добавляем компенсацию для среднего 0}

   Image1.Picture.Bitmap.Canvas.Pixels[Trunc(x), Trunc(y)] := clBlack;

end;

end;

 

 

 

 

 

 

 

Я обнаружил, что лучшим решением будет рисование на холсте. Предпочтительно делать это в отдельной процедуре, которая принимает в качестве параметров TCanvas и TRect. Таким способом мы может передать в качестве параметров холст вашего окна и клиентскую область для рисования на экране, и холст принтера и область клиента для ее позиционирования и печати. Чтобы посмотреть доступные для рисования подпрограммы, взгляните на методы холста.

©Drkb::03743

       

Взято с http://delphiworld.narod.ru