На канве объекта Image я отмечаю две точки, далее рисую оси x и y,подскажите пожалста как можно нарисовать отрезок равный отмеченному, но который будет || оси x и проходить через ось y?
private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm} var x1,y1: array [0..10] of integer; i:Integer; ln:real;
procedure TForm1.FormCreate(Sender: TObject); begin i:=0; x1[0]:=Image1.Width div 2; y1[0]:=Image1.Height div 2; end;
//Отмечаем точки procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if i<2 then begin inc(i); with Image1.Canvas do ellipse(x,y,x+5,y+5); if i=1 then begin x1[1]:=x-Image1.Width div 2; y1[1]:=-(y-Image1.Height div 2); end; if i=2 then begin x1[2]:=x-Image1.Width div 2; y1[2]:=-(y-Image1.Height div 2); end; end else showMessage(' ');
begin ln:=sqrt(sqr(x1[1]-x1[2]) + sqr(y1[1]-y1[2]));//находим длину отрезка
With image1.Canvas do begin //Оси MoveTo(Image1.Width div 2,0); LineTo(Image1.Width div 2,Image1.Height); MoveTo(0,Image1.Height div 2 ); LineTo(Image1.Width,Image1.Height div 2);
таких отрезков может быть очень много.... равен - по длине? а проходить через у где угодно может?
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
Я понимаю что очень много.. мне главное алгоритм,который я как раз таки и не могу составить((, а так можно где угодно только бы равный и параллельный Оx.
ну, если ошибка округления не очень принципиальна, то можно делать так: 1. считаем длину отрезка - координаты 2 точек известны. округляем. 2. проводим отрезок между точками (-d/2;y)(d/2;y), где y - произвольное....
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!