Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Как нарисовать график   Найти похожие ветки 

 
Биритм   (2006-12-25 14:53) [0]

Подскажите как в делфи построить график по заданной функции.И вообще можно ли это сделать используя стандартные средства Delphi


 
Ega23 ©   (2006-12-25 14:54) [1]

см. компонент TChart


 
Steep ©   (2006-12-25 14:56) [2]


> И вообще можно ли это сделать используя стандартные средства
> Delphi

конечно возможно!

> Подскажите как в делфи построить график по заданной функции

береш TCavas и рисуешь.
Canvas.MoveTo(x,y); передвижение в заданную точку
Canvas.LineTo(x,y); линия в заданную точку


 
ВаДикДаДик   (2006-12-25 14:57) [3]

А можно поподробнее а то в делфи я новичок


 
Биритм   (2006-12-25 14:59) [4]

Мне нужно построить синусойду, мне кажется Canvas.LineTo не подойдёт, хотя может я ошибаюсь


 
grisme ©   (2006-12-25 15:03) [5]

GDI / GL / DX %-)


 
Steep ©   (2006-12-25 15:04) [6]


> GDI / GL / DX %-)

самое-то начинаещему?


 
Ega23 ©   (2006-12-25 15:07) [7]


> Мне нужно построить синусойду, мне кажется Canvas.LineTo
> не подойдёт, хотя может я ошибаюсь


Кажется - креститься надо.


 
Биритм   (2006-12-25 15:07) [8]

Подскажите где находиться компонент TCavas


 
Ega23 ©   (2006-12-25 15:07) [9]

TCanvas никогда компонентом не был (и не будет).


 
Steep ©   (2006-12-25 15:07) [10]

как же не подходит.
тебе нужно рассчитать график
т.е. примерно так
передвигаешь точку в начале рисования MoveTo
Canvas.MoveTo(0, Canvas.height)
затем в цикле рисуешь график своей функции
For i:=0 to 800 do
 begin            
 Canvas.LineTo(i, Sin(i));
 end;

Ps. надеюсь у меня правильно мозги работают


 
Steep ©   (2006-12-25 15:09) [11]

TCanvas (опять мастера на меня наедут) находиться в Практически любом визуальном компоненте. но лучше использовать PaintBox


 
Ega23 ©   (2006-12-25 15:15) [12]


> TCanvas (опять мастера на меня наедут) находиться в Практически
> любом визуальном компоненте. но лучше использовать PaintBox


TCanvas - суть HDC. Есть действительно у многих визуальных компонентов (но далеко не у всех). Не у всех оно в public.


 
Anatoly Podgoretsky ©   (2006-12-25 15:15) [13]

> Steep  (25.12.2006 15:07:10)  [10]

Неправильно, будет прямая линия


 
Steep ©   (2006-12-25 15:18) [14]


> Неправильно, будет прямая линия

ой ну да
Canvas.LineTo(i, Round(Sin(i)*100) );

а так?


 
Max Ivanych ©   (2006-12-25 15:21) [15]

А если все-таки обратиться к TChart?


 
Max Ivanych ©   (2006-12-25 15:29) [16]

Берешь, бросаешь его на форму, создаешь серию для графика через редактор, далее
Series1.Clear;
for i:=0 to 800 do
Series1.Add(i,Sin(i));


 
Anatoly Podgoretsky ©   (2006-12-25 15:40) [17]

> Steep  (25.12.2006 15:18:14)  [14]

Аргумент должен быть в радианах


 
inkvizitor ©   (2006-12-26 09:27) [18]

выкинь chart на форму, нажми два раза прав.кнопкой, нажми add выбери тип графика и экспериментируй
пример синуса при появлении окна:

procedure TForm1.FormActivate(Sender: TObject);
var
k: Integer;
begin
for k := 0 to 20 do
Chartl.SeriesList[0].AddXY(k,sin(k*pi/10)," ",clRed) ;
end;

стандартно.


 
kester ©   (2006-12-27 00:12) [19]

Вот код из DRKB. Рисует график функции.


procedure TForm1.Button3Click(Sender: TObject);
var x, y: array[1..50] of double;
 i: integer;
 scalex, scaley, ymin, ymax, xmin, xmax: double;
begin
 for i := 1 to 50 do
   begin
     y[i] := sin(i * 0.5);
     x[i] := i;
   end;
 xmin := x[1];
 xmax := x[1];
 ymin := y[1];
 ymax := y[1];
 for i := 2 to 50 do
   begin // или используйте ymin:=MinValue(y); и т.д.
     if y[i] < ymin then ymin := y[i];
     if y[i] > ymax then ymax := y[i];
     if x[i] < xmin then xmin := x[i];
     if x[i] > xmax then xmax := x[i];
   end;
 scalex := paintbox1.Width / (xmax - xmin);
 scaley := paintbox1.Height / (ymax - ymin);
 with paintbox1.canvas do
   begin
     moveto(trunc(scalex * (x[1] - xmin)), paintbox1.height - trunc(scaley * (y[1] - ymin)));
     for i := 2 to 50 do
       Lineto(trunc(scalex * (x[i] - xmin)), paintbox1.height - trunc(scaley * (y[i] - ymin)));
   end;
end;



 
ors_archangel ©   (2006-12-27 01:18) [20]

MoveTo/LineTo лучше заменить Windows.PolyPolyLine



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.12 c
15-1166474454
Cyrax
2006-12-18 23:40
2007.01.14
Можно ли (теоретически и практически) заюзать Xerces ?


15-1166685830
vitv
2006-12-21 10:23
2007.01.14
Визуальное проектирование приложений C#-мнения


2-1166631349
Чуча
2006-12-20 19:15
2007.01.14
Отчеты


5-1146718409
MrShadow_
2006-05-04 08:53
2007.01.14
XPManifest


15-1166470318
Kolan
2006-12-18 22:31
2007.01.14
А как установить поддержку азиатских языков в Windows?