Текущий архив: 2002.12.26;
Скачать: CL | DM;
ВнизПомогите сделать динамическое изменение Найти похожие ветки
← →
masia (2002-12-16 19:21) [0]Есть код программы строящей график по зависимостям, необходимо сделать динамику,в Timer добавить, но что?
КОД ПРОГРАММЫ:
$F+}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
func = function(x:real):real;
TForm1 = class(TForm)
Button1: TButton;
Chart1: TChart;
Series1: TLineSeries;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y: real;
k: integer;
f: func;
implementation
{$R *.DFM}
function f1(x:real):real;
begin
f1:=x+sin(x);
end;
function f2(x:real):real;
begin
f2:=sqrt(x);
end;
function f3(x:real):real;
begin
f3:=1-sqrt(x-1);
end;
const ar_fun: array[1..3] of func =(f1,f2,f3);
procedure TForm1.Button1Click(Sender: TObject);
label us1,us2,us3,us4,us5,us6;
var z: integer;
m: integer;
begin
f:= ar_fun[2];
k:=0;
m:=0;
Chart1.View3D:=False;
Chart1.Series[0].Title:="График"; // это будет имя нашей ломаной (в легенде)
Chart1.Legend.LegendStyle:=lsSeries;
goto us2;
us1:
z:=k;
//label1.Caption:= inttostr(z);
x:=0.1*k;
y:=f(x);
chart1.series[0].addxy(x+m,f(x),"",clred); // Выводим 1-ю полуволну
//chart1.series[0].addxy(x,f3(x),"",clred);
k:= k+1;
goto us2;
us2:
if k >11 then goto us3; //кол-во точек по которым строи
if k<11 then goto us1;
us3:
k:=1;
x:=k;
goto us4;
us4:
y:=f(x);
chart1.series[0].addxy(x+m,f3(x),"",clred); // вывод 2- го полупериода
k:=k+1;
x:=0.0000000001*k+k; // бьем для получения максимального нуля (без отр велечин по y)
if y<0 then goto us5;
if k<3 then goto us4;
if k>3 then goto us5;
us5:
m:=m+2; // задаю кол- во периодов
if m>6 then goto us6;
if m<6 then goto us1;
us6:
end;
end.
← →
Cobalt (2002-12-17 00:21) [1]поясни, что ты имеешь в виду под "динамикой"?
← →
masia (2002-12-17 00:34) [2]что график будет двигаться, но при его движении будет оставаться 3-ри периода
← →
zavdim (2002-12-17 05:58) [3]Я бы рисовал график при каждом тике заново, но со сменой левой и правой границы. Это мультипликация - поэтому могут быть проблемы с дерганиями и т.д. Но можно сделать гладко.
А вообще в дельфях есть каталог Demos\Teechart - там есть такие примеры.
Страницы: 1 вся ветка
Текущий архив: 2002.12.26;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c