Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2009, 02:31   #1
aleks8091
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 14
По умолчанию График. Delphi

Всем доброго время суток, подскажите как решить простенькую задачу, какие компоненты использовать чтобы "начертить" график?
Формула:
Код HTML:
L(x) = 1.0067x^3-5.0771x^2+7.6381x-3.4719
В Delphi 7 ..
aleks8091 вне форума Ответить с цитированием
Старый 31.12.2009, 07:34   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Вообще говоря, никакие не надо использовать. Свойство Canvas, на котором происходит отрисовка, есть и у самой формы. А вообще подойдёт любой, имеющий свойство Canvas - Image, PaintBox
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 31.12.2009, 12:47   #3
aleks8091
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 14
По умолчанию

Спасибо!
по paintBox нашел..
aleks8091 вне форума Ответить с цитированием
Старый 31.12.2009, 13:34   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Немного кривовато, но можно вот так:
Код:
function f(x:real):real;
begin
 result:=1.0067*power(x,3)-5.0771*sqr(x)+7.6381*x-3.4719;
end;

procedure TForm1.FormPaint(Sender: TObject);
const
size=20; //Коэффициент увеличения
border=8;
var
i:integer;
o:Tpoint;
begin
   with canvas do
   begin
      //Начало координат
      Pen.Color:=clblack;
      o.X:=ClientWidth div 2;
      o.Y:=ClientHeight div 2;
      //Рисуем ось
      //x
      moveto(0+border,o.Y);
      Lineto(ClientWidth-border,o.Y);
      moveto(ClientWidth-border,o.Y);
      lineto(ClientWidth-(border*3),o.Y-border);
      moveto(ClientWidth-border,o.Y);
      lineto(ClientWidth-(border*3),o.Y+border);
      TextOut(ClientWidth-border-6,(o.Y)-size,'x');
      //y
      moveto(o.X,border+0);
      Lineto(o.X,ClientHeight-border);
      moveto(o.X,border);
      lineto(o.X-border,border*3);
      moveto(o.X,border);
      lineto(o.X+border,border*3);
      TextOut(o.X+6,border-4,'y');
      //o
      TextOut((o.X)-6,(o.Y)+1,'0');
      for I := 0 to (ClientWidth-border*4) div 2 div size do
      begin
         if i<>0 then
         begin
            moveto(o.X+i*size,o.Y-(size div 2));
            lineto(o.X+i*size,o.Y+(size div 2));
            TextOut(o.X+i*size-2,o.Y+(size div 2),inttostr(i));
            moveto(o.X-i*size,o.Y-(size div 2));
            lineto(o.X-i*size,o.Y+(size div 2));
            TextOut(o.X-i*size-6,o.Y+(size div 2),inttostr(-i));
         end;
      end;
      for I := 0 to (ClientHeight-border*4) div 2 div size do
      begin
         if i<>0 then
         begin
            moveto(o.X-(size div 2),o.Y+i*size);
            lineto(o.X+(size div 2),o.Y+i*size);
            TextOut(o.X+(size div 2)+1,o.Y+i*size-7,inttostr(-i));
            moveto(o.X-(size div 2),o.Y-i*size);
            lineto(o.X+(size div 2),o.Y-i*size);
            TextOut(o.X+(size div 2)+1,o.Y-i*size-7,inttostr(i));
         end;
      end;
      //Рисуем график функции
      Pen.Color:=clred;
      moveto(-ClientWidth,ClientHeight);
      for I := -ClientWidth to ClientWidth do
      begin
         lineto((i*size)+o.X,(-trunc(f(i))*size)+o.Y);
      end;
   end;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
   repaint;
end;
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 31.12.2009 в 13:36.
russian-stalker вне форума Ответить с цитированием
Старый 01.01.2010, 15:52   #5
aleks8091
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 14
По умолчанию

Спасибо !!
aleks8091 вне форума Ответить с цитированием
Старый 01.01.2010, 18:55   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
какие компоненты использовать чтобы "начертить" график?
TChart(10 символов)
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 01.01.2010, 18:55   #7
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
какие компоненты использовать чтобы "начертить" график?
TChart(10 символов)
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График функции (delphi 7) Demav Помощь студентам 12 02.07.2009 08:43
Delphi. График Puzz1e Помощь студентам 9 03.06.2009 17:13
график(Delphi) 2009 Помощь студентам 3 20.03.2009 15:37
Delphi ->Excel->График по таблице->Delphi Avalonix БД в Delphi 2 30.10.2008 14:04
3D график в Delphi AVer Мультимедиа в Delphi 9 17.10.2008 07:04