IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> график функции
сообщение
Сообщение #1


Гость






Задача состоит в следующем, нарисовать график функции с возможностью увеличения и уменьшения в дочке x,y. С масштабированием проблем нет, рисует как надо но с увеличением и уменьшением бред получается, весь инет перерыл нечего похожего не нашел.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Код покажи...

Иначе ничего, кроме "ошибка в 17-ой строке" не услышишь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(Гость @ 9.12.2006 13:56) *

Код покажи...

Иначе ничего, кроме "ошибка в 17-ой строке" не услышишь...


Но это бред
Код

unit main;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Image1: TImage;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  sx,sy:integer;
implementation
{$R *.dfm}
function f_y(x:real):real;
begin
  f_y:=(((sin(x/2)/cos(x/2)))+cos(x))/(sin(1/x));
end;
procedure showGraf(dx,dy,scale:integer);
var x,y,a,b,h,mx,my,xx,yy:real;
begin
  with Form1 do begin
   a:=0; b:=9.42; h:=0.942;
   my:=dy/(20-(-20));
   mx:=dx/(10-(-10));
   x:=0;
   Image1.Canvas.Pen.Style:=psSolid;
   Image1.Canvas.Rectangle(0,0,500,300);
   x:=x+h;
   image1.Canvas.MoveTo(round(dx/2-x*mx),round(300/2-f_y(x)*my));
   while x<=b-0.94 do begin
    yy:=dy/2-f_y(x)*my;
    xx:=dx/2+x*my;;
    Image1.Canvas.LineTo(round(xx),round(yy));
    x:=x+h;
   end;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
sx:=500; sy:=300;
showGraf(sx,sy,0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Image1.Refresh;
sx:=sx-20; sy:=sy+10;
showGraf(sx,sy,1);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Image1.Refresh;
sx:=sx+20; sy:=sy-10;
showGraf(sx,sy,1);
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then begin
  sx:=sx-10;
end;
if Button=mbRight then begin
  sx:=sx+10;
end;
showGraf(sx,sy,1);
end;

end.

 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 17:43
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name