![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 21.05.2012
Сообщений: 6
|
![]()
Координаты точек обращены на угол фи подсчитывает. Проблема соединить их, выдает ошибку. Помогите, буду очень благодарен.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst, Spin; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; ListBox1: TListBox; ListBox2: TListBox; SpinEdit1: TSpinEdit; Button1: TButton; procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; x1,y1,sx,sy,n:integer; xa: array [1..100 ]of integer; ya: array [1..100 ]of integer; implementation {$R *.dfm} procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if (button=mbright) then begin canvas.MoveTo(x,y); x1:=x; y1:=y; listbox1.Items.Add(IntToStr(x)); listbox2.Items.Add(IntToStr(y)); end; if (ssShift in Shift) then begin canvas.LineTo(x,y); listbox1.Items.Add(IntToStr(x)); listbox2.Items.Add(IntToStr(y)); end; sx:= StrToInt(listbox1.Items[0]); sy:= StrToInt(listbox2.Items[0]); if (((x>(sx-10))and (x<(sx+10)))and((y<(sy+10))and (y>(sy-10)))) then begin canvas.LineTo(sx,sy); end; end; procedure TForm1.Button1Click(Sender: TObject); var i,a,TempX,TempY:integer; an:real; p: array of TPoint; begin a:=spinedit1.Value; An:=(a+180)*(3.14/180); n:=listbox1.Count; for i:=1 to n do begin xa[i]:= StrToInt(listbox1.Items[i-1]); ya[i]:= StrToInt(listbox2.Items[i-1]); TempX:=xa[1]-xa[i]; TempY :=ya[1]-ya[i]; p[i].X:=Trunc( Cos( An) * TempX - Sin( An) * TempY ); p[i].Y:=Trunc( Sin( An) * TempX + Cos( An) * TempY ); form1.Canvas.Polygon(p); end; end; end. Последний раз редактировалось Mazahacka1; 21.05.2012 в 18:25. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск всех путей в лабиринте от точки до точки | pavel_abelardo | Помощь студентам | 12 | 26.06.2011 00:23 |
Си найти минимальный путь от точки до точки | dikr | Помощь студентам | 4 | 09.05.2010 11:58 |
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? | Rin | Мультимедиа в Delphi | 2 | 10.11.2009 22:47 |
даны две точки. организовать движение из точки А в точку Б окружности! | Wi1D | Помощь студентам | 6 | 23.05.2009 19:55 |
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть | Дикий | Помощь студентам | 7 | 12.05.2008 17:57 |