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

Вниз

Вот дан исходный модуль.Это программа строит график функции.Помог   Найти похожие ветки 

 
Gleb ©   (2006-03-25 20:00) [0]

Вот дан исходный модуль.Это программа строит график функции.Помогите  
сделать чтобы на осях координат (ox и oy) были проставлены значения  функции и
что бы они менялись в зависимости от масштаба и смещения.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, Spin, StdCtrls, Buttons, ComCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Edit1: TEdit;
   GroupBox1: TGroupBox;
   GroupBox2: TGroupBox;
   SpinEdit1: TSpinEdit;
   SpinEdit2: TSpinEdit;
   Label2: TLabel;
   Label3: TLabel;
   SpinEdit3: TSpinEdit;
   SpinEdit4: TSpinEdit;
   Label4: TLabel;
   Label5: TLabel;
   Image1: TImage;
   SpeedButton1: TSpeedButton;
   SpeedButton2: TSpeedButton;
   procedure SpinEdit4Change(Sender: TObject);
   procedure SpinEdit3Change(Sender: TObject);
   procedure SpinEdit2Change(Sender: TObject);
   procedure SpinEdit1Change(Sender: TObject);
   procedure SpeedButton1Click(Sender: TObject);
   procedure SpeedButton2Click(Sender: TObject);
   procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure SpeedButton2MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure Timer1Timer(Sender: TObject);
   procedure SpinEdit5Change(Sender: TObject);
   procedure Edit2Change(Sender: TObject);
   procedure CheckBox1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   procedure ClearZ;//очищает
   procedure DrawZ;//рисует
   Function Calc_yr_on_Xr( sT:string;xr:real):real;  
 end;

var
 Form1: TForm1;

implementation
uses Tfp_01;
{$R *.dfm}

procedure TForm1.ClearZ;
begin
 image1.Canvas.Brush.Color := clwhite;
 image1.Canvas.FillRect( Rect(0,0, image1.Width,image1.Height) );
end;

procedure TForm1.DrawZ;
var g1,g2,g4,g3,g0:integer;
Px,Py:longint;
y,x:real;
begin

try
   g1:=SpinEdit1.Value;//горизонтальный масштаб
      g2:=SpinEdit2.Value;//вертикальный масштаб
         g3:=SpinEdit3.Value;//смещение горизонтальное
            g4:=SpinEdit4.Value;//смещение вертикальное
  with image1.Canvas do
   begin
       pen.Width:=2;
         pen.Color:=clBlack;
//  ось ox
     moveto(0,g3);
       lineto(image1.Width,g3);
//  ось 0y
     moveto(g4,0);
       lineto(g4,image1.Height);

     pen.Width:=3;
     Pen.Color:=Clred;

     Moveto(-90,0) ;

     For px:=-1  to image1.Width do
      begin
       X:=(px-g4)/ g2;

       Y:=Calc_yr_on_Xr(Edit1.Text,x);
       Py :=  g3-Trunc(Y*g1);
       LineTo( px, py);
      end;
   end;
 except
MessageDlg("Не возможно построить график",
              mtInformation,[mbok], 0);

 end;
end;

procedure TForm1.SpinEdit4Change(Sender: TObject);
begin

 ClearZ;// очистить
 DrawZ;
end;

procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
ClearZ;// очистить
 DrawZ;//нарисовать
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
ClearZ;// очистить
 DrawZ;//нарисовать
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin

ClearZ;// очистить
 DrawZ;//нарисовать
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  DrawZ;//нарисовать
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin

 ClearZ;
end;

procedure TForm1.SpinEdit5Change(Sender: TObject);
begin
ClearZ;// очистить
 DrawZ;
end;
function TForm1.Calc_yr_on_Xr(sT: string; xr: real): real;
var  s2:string; n:integer;
begin
 s2 := FloatToStr(xr);
 n := Pos (",",s2);
 if n>0 then s2 := Copy(s2,1,n-1)+"."+Copy(s2,n+1, Length(s2));

 repeat
 n:=Pos("x",sT);
 if n>0 then sT := Copy(sT,1,n-1)+s2+Copy(sT,n+1, Length(sT));
 until n=0;

 result:= Tfp_parse2real( sT );
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
ClearZ;// очистить
 DrawZ;
end;

end;
end.


 
Desdechado ©   (2006-03-25 20:06) [1]

это все уже сделано в TChart


 
Gleb ©   (2006-03-25 20:22) [2]

А мне надо чтобы значение были в компоненте Image1....


 
Kolan ©   (2006-03-25 22:58) [3]

Canvas.TextOut


 
Gleb ©   (2006-03-27 10:44) [4]

А как сделать чтобы менялись значения с изменением масштаба


 
Darvin ©   (2006-03-27 18:01) [5]

Завести свойство Scale : Integer


 
Gleb ©   (2006-03-28 10:43) [6]

А как теперь это записать в моей программе?



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

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

Наверх




Память: 0.49 MB
Время: 0.026 c
1-1141427734
fenixaz
2006-03-04 02:15
2006.04.09
Вопросы по ComboBox


1-1141920092
Fenix
2006-03-09 19:01
2006.04.09
Динамическое создание разделов меню


2-1143096806
Pearled
2006-03-23 09:53
2006.04.09
Сдвиг целого блока


2-1143307171
Китаец
2006-03-25 20:19
2006.04.09
Компонент WebBrowser


2-1143365039
Golik
2006-03-26 13:23
2006.04.09
Как добавить запись ?