Delphi,дописать программу,прорисовка спирали на Image
Добавлено: 08 янв 2011, 12:01
Здравствуйте!!!Помогите доделать задачку.Код есть уже,но нужно подправить.Прорисовка спирали.Мне нужно,чтобы спираль рисовалась в центре Image.В программе она сейчас располагается в центре,но все равно прорисовка идет с верхнего левого угла.Помогите от этого избавиться!
В Edit1 содержится начальный угол,в Edit2-количество спиралей.Это задается пользователем.
Код нажатие на кнопку
[syntax="delphi"]
procedure TForm1.Button1Click(Sender: TObject);
var
Al, n, t, r, m: real;
x, y: integer;
PX, PY: LongInt;
begin
try
Al := StrToFloat(Edit1.text);
n := StrToFloat(Edit2.text);
except
on e: Exception do
begin
MessageDlg('Проблема при преобразовании: ' + e.Message, mtWarning, [mbOk], 0);
Exit;
end;
end;
if (AL < 0) or (n < 0) then
MessageDlg('Введите положительное значение!', mtInformation, [mbOk], 0)
else
m := pi / (180 / Al); {начальный угол}
t := m;
x := Screen.Height div 2;
y := Screen.Width div 2;
while (t <= 2 * pi * n) do
begin
r := t / 2;
x := x + trunc(r * cos(t));
y := y + trunc(r * sin(t));
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Color := clred;
Image1.Canvas.LineTo(x, y);
t := t + pi / 4;
end;
end;
[/syntax]
------------
Форматируйте код и заключайте его при публикации в теги.
Скоро мне надоест и я начну удалять без предупреждения.
В Edit1 содержится начальный угол,в Edit2-количество спиралей.Это задается пользователем.
Код нажатие на кнопку
[syntax="delphi"]
procedure TForm1.Button1Click(Sender: TObject);
var
Al, n, t, r, m: real;
x, y: integer;
PX, PY: LongInt;
begin
try
Al := StrToFloat(Edit1.text);
n := StrToFloat(Edit2.text);
except
on e: Exception do
begin
MessageDlg('Проблема при преобразовании: ' + e.Message, mtWarning, [mbOk], 0);
Exit;
end;
end;
if (AL < 0) or (n < 0) then
MessageDlg('Введите положительное значение!', mtInformation, [mbOk], 0)
else
m := pi / (180 / Al); {начальный угол}
t := m;
x := Screen.Height div 2;
y := Screen.Width div 2;
while (t <= 2 * pi * n) do
begin
r := t / 2;
x := x + trunc(r * cos(t));
y := y + trunc(r * sin(t));
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Color := clred;
Image1.Canvas.LineTo(x, y);
t := t + pi / 4;
end;
end;
[/syntax]
------------
Форматируйте код и заключайте его при публикации в теги.
Скоро мне надоест и я начну удалять без предупреждения.