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

> ВНИМАНИЕ!

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

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

> График с проверкой попадпния, Делфи.Графика
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 65
Пол: Мужской

Репутация: -  0  +


Ребят помогите пожалуйста...никак не могу проверить на попадпние в заданную область...вот код...график начертил..на форме только image и lable1:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
with image1.Canvas do
begin
pen.Color := clBlack;
brush.Color := clRed;

moveTo(200,50);
lineTo(200, 350);
moveTo(50,200);
LineTo(350, 200);

moveTo(200,60);
lineTo(340,200);
lineTo(200,340);

arc(60,60,340,340,200,50,201,350);

floodFill(199,199, clBlack, fsBorder);
floodFill(201,199, clBlack, fsBorder);
floodFill(199,201, clBlack, fsBorder);
floodFill(201,201, clBlack, fsBorder);
textout(190,205,'0');
textout(70,205,'-1');
textout(307,205,'1');
textout(190,65,'1');
textout(190,315,'-1');
end;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (x<0) and (x*x+y*y<?)or (x>0) and ((x+y)<?) then
form1.Label1.Caption:='Принадлежит' else
form1.Label1.Caption:='Не принадлежит';
end;

end.


Никак не могу понять с чем нужно сравнивать...заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 65
Пол: Мужской

Репутация: -  0  +


Все..программу написал,все работает...если кому пригодится,выкладываю:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, TeEngine, Series, TeeProcs, Chart;

type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Chart1: TChart;
Series1: TLineSeries;
Button3: TButton;
PrintDialog1: TPrintDialog;
Button4: TButton;
Button5: TButton;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
procedure FormCreate(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
with image1.Canvas do
begin
pen.Color := clBlack;
brush.Color := clAqua;

moveTo(200,50);
lineTo(200, 350);
moveTo(50,200);
LineTo(350, 200);

moveTo(200,60);
lineTo(340,200);
lineTo(200,340);

arc(60,60,340,340,200,50,201,350);

floodFill(199,199, clBlack, fsBorder);
floodFill(201,199, clBlack, fsBorder);
floodFill(199,201, clBlack, fsBorder);
floodFill(201,201, clBlack, fsBorder);
textout(190,205,'0');
textout(70,205,'-1');
textout(307,205,'1');
textout(190,65,'1');
textout(190,315,'-1');
end;

end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
X := X - 200; Y := Y - 200;
If (X < 0) and (sqr(X)+sqr(Y) < sqr(139)) or
(X >= 0) and (140 - X - abs(Y) > 0) Then form1.Label1.Caption:= 'Принадлежит'
else form1.Label1.Caption := 'Не принадлежит';
end;

procedure TForm1.Button2Click(Sender: TObject);
var
y,x:real;
begin
try
x:=strtofloat(Edit1.Text);
y:=Arctan(x/sqrt(1-sqr(x)))+exp(2);
Label4.Caption:='Y= '+floattostr(y);
except
on EConvertError do
begin
ShowMessage('Введите число!'+#13+'При записи дробного числа используйте запятую.');
exit;
end;
end;
if Label4.Caption<>'' then Button3.Enabled:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
l,m:real;
begin
if (form1.Edit2.text<>'')and(form1.Edit3.text<>'') then
begin
l:=strtofloat(form1.Edit2.text);
m:=strtofloat(form1.Edit3.text);
end;
if (l<=0) and ((l*l+m*m)<=1) or (l>=0) and (abs(l+m)<=1) then
form1.Label1.Caption:='Принадлежит' else
form1.Label1.Caption:='Не принадлежит';
end;

procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 100 do
Series1.AddXY(0.01*Pi*i,Arctan((0.01*Pi*i)/sqr(1-(0.01*Pi*i)*(0.01*Pi*i)))+(0.01*Pi*i)*(0.01*Pi*i));
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
Form2.Image1.Picture.Bitmap:=GetFormImage;
Form2.Showmodal;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if PrintDialog1.Execute then Form1.Print;
end;

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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