Страница 1 из 1

Delphi,дописать программу,прорисовка спирали на Image

Добавлено: 08 янв 2011, 12:01
Irina0706
Здравствуйте!!!Помогите доделать задачку.Код есть уже,но нужно подправить.Прорисовка спирали.Мне нужно,чтобы спираль рисовалась в центре 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]
------------
Форматируйте код и заключайте его при публикации в теги.
Скоро мне надоест и я начну удалять без предупреждения.

Re: Delphi,дописать программу,прорисовка спирали на Image

Добавлено: 17 янв 2011, 11:36
Oleg_Rus
учитывай масимальное разрешение экрана. Если не ошибаюсь в паскале есть процедуры MaxX u MaxY

Re: Delphi,дописать программу,прорисовка спирали на Image

Добавлено: 17 янв 2011, 18:55
romanriddick
Делаетса очень легко
сначала переменным присваеваетса ширына и высота екрана , потом пишем функции перехода отекранных координат к "реальных" так чтоб например для екрана 640х480 при putpixel (0,0) точка ставала на 320х240

Re: Delphi,дописать программу,прорисовка спирали на Image

Добавлено: 15 фев 2011, 11:21
dr.Jekill

Код: Выделить всё

x:=Screen.Height div 2;
y:=Screen.Width div 2;
а это:
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Color := clred;
лучше вынести из тела цикла

Re: Delphi,дописать программу,прорисовка спирали на Image

Добавлено: 22 фев 2011, 12:28
flash1989
Пишите, сделаю
icq: 588002847
email: flash_1989@ukr.net
skype: rfhfcerf