Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
4-1137994529
novikova
2006-01-23 08:35
2006.04.09
Работа через модем в режиме ЗАПРОС-ОТВЕТ


15-1142923918
Бугага
2006-03-21 09:51
2006.04.09
RFC заголовок


2-1143179491
Scorpio
2006-03-24 08:51
2006.04.09
Работа с БД Oracle


2-1143473111
SamProf
2006-03-27 19:25
2006.04.09
Как можно перечислить все диски?


11-1124346950
ImPuls$$
2005-08-18 10:35
2006.04.09
Шрифты в owner-drawn ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский