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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 14:26   #1
Richik123
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 92
По умолчанию Ошибка в построение графика.

Криво строит
в чем ошибка?
line to и move to менять надо?

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    button2: TButton;
    button3: TButton;
    button4: TButton;
    button5: TButton;
    button6: TButton;
    pic1: TPaintBox;
    procedure button2Click(Sender: TObject);
    procedure button3Click(Sender: TObject);
    procedure button4Click(Sender: TObject);
    procedure button5Click(Sender: TObject);
    procedure button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.button2Click(Sender: TObject);
var xg,yg,xgmax,xgmin,ygmax,ygmin:Integer;
  x,h,y,xmax,ymax,xmin,ymin:real;
  i:Integer;
begin
xmin:=-4;
xmax:=4;
ymin:=-4;
ymax:=4;
xgmin:=0;
xgmax:=250;
ygmin:=180;
ygmax:=0;
h:=0.1;
x:=0.1;
y:=(x*x)-x+1;
xg:=xgmin+TRUNC((xgmax-xgmin)*(x-xmin)/(xmax-xmin));
xg:=ygmin+TRUNC((ygmax-ygmin)*(y-ymin)/(ymax-ymin));
pic1.Canvas.MoveTo(xg,yg);
while x<=xmax do begin
  x:=x+h;
  y:=(x*x)-x+1;
xg:=xgmin+TRUNC((xgmax-xgmin)*(x-xmin)/(xmax-xmin));
yg:=ygmin+TRUNC((ygmax-ygmin)*(y-ymin)/(ymax-ymin));
pic1.Canvas.LineTo(xg,yg);
  end;
end;

procedure TForm1.button3Click(Sender: TObject);
var xg,yg,xgmax,xgmin,ygmax,ygmin:Integer;
  x,h,y,xmax,ymax,xmin,ymin:real;
  i:Integer;
begin
xmin:=-4;
xmax:=4;
ymin:=-4;
ymax:=4;
xgmin:=0;
xgmax:=250;
ygmin:=180;
ygmax:=0;
h:=0.1;
x:=0.1;
y:=2*x-1;
xg:=xgmin+TRUNC((xgmax-xgmin)*(x-xmin)/(xmax-xmin));
yg:=ygmin+TRUNC((ygmax-ygmin)*(y-ymin)/(ymax-ymin));
pic1.Canvas.MoveTo(xg,yg);
while x<=xmax do begin
  x:=x+h;
  y:=2*x-1;
  xg:=xgmin+TRUNC((xgmax-xgmin)*(x-xmin)/(xmax-xmin));
yg:=ygmin+TRUNC((ygmax-ygmin)*(y-ymin)/(ymax-ymin));
pic1.Canvas.LineTo(xg,yg);
end;
end;
procedure TForm1.button4Click(Sender: TObject);
var xg,yg,xgmax,xgmin,ygmax,ygmin:Integer;
  x,h,y,xmax,ymax,xmin,ymin:real;
  i:Integer;
begin
xmin:=-4;
xmax:=4;
ymin:=-4;
ymax:=4;
xgmin:=0;
xgmax:=250;
ygmin:=180;
ygmax:=0;
h:=0.1;
x:=0.1;
y:=1/((x*x)-x+1);
xg:=xgmin+TRUNC((xgmax-xgmin)*(x-xmin)/(xmax-xmin));
yg:=ygmin+TRUNC((ygmax-ygmin)*(y-ymin)/(ymax-ymin));
pic1.Canvas.MoveTo(xg,yg);
while x<=xmax do begin
  x:=x+h;
  y:=1/((x*x)-x+1);
  xg:=xgmin+TRUNC((xgmax-xgmin)*(x-xmin)/(xmax-xmin));
yg:=ygmin+TRUNC((ygmax-ygmin)*(y-ymin)/(ymax-ymin));
pic1.Canvas.LineTo(xg,yg);
end;
end;

procedure TForm1.button5Click(Sender: TObject);
begin
pic1.Color:=clWindow;
pic1.Color:=clGreen;
end;

procedure TForm1.button6Click(Sender: TObject);
begin
pic1.Canvas.Pen.Color:=clBlack;
pic1.Canvas.MoveTo(1,1);
pic1.Canvas.LineTo(1,250);
pic1.Canvas.MoveTo(0,190);
pic1.Canvas.LineTo(250,190);
pic1.Canvas.Pen.Color:=clred;
end;

end.

Последний раз редактировалось Richik123; 09.12.2012 в 14:32.
Richik123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графика в VC++ taralesh Помощь студентам 0 24.05.2011 19:18
построение графика v1175986 Помощь студентам 0 19.05.2011 22:34
Построение графика AnderoN Помощь студентам 0 09.05.2011 22:35
построение графика tanka123 Microsoft Office Excel 1 17.06.2009 09:17
Построение графика Sasuke-sama Общие вопросы C/C++ 30 31.05.2009 17:59