Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #2  
Старый 04.01.2010, 15:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В принципе, можно, конечно, отрисовывать все в OnPaint. При этом незабудь преобразовать координаты по y, т.к. точка 0 по этой оси находится в другом месте.

Код:
function F(x : integer) : Integer;
begin
  result := x*x;
end;

procedure TForm1.PaintBox1Paint(Sender : TObject);
var
  x, y, i : Integer;
begin
  // X in -100..100
  // Y = X^2
  x := -100 + Round(PaintBox1.Width / 2);
  y :=  f(-100) * -1 + Round(PaintBox1.Height / 2);
  With PaintBox.Canvas Do
    Begin
        Pen.Color := clBlack;
        Brush.Color := clWhite;
        FillRect(Rect(0,0,Width,Height);
        MoveTo(x,y);    
        For I := -100 To 100 Do
          Begin
            x := -100 + Round(PaintBox1.Width / 2);
            y :=  f(-100) * -1 + Round(PaintBox1.Height / 2);
            LineTo(x,y);
          End;
    End;
end;

Но, вообще, лучше сделать отрисовку на буферном битмапе, а его уже выводить в OnPanit. Что бы каждый раз график не рассчитывался и не перерисовывался.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:45.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025