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

Ответить
Irina0706
Сообщения: 2
Зарегистрирован: 08 янв 2011, 11:27

Здравствуйте!!!Помогите доделать задачку.Код есть уже,но нужно подправить.Прорисовка спирали.Мне нужно,чтобы спираль рисовалась в центре 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]
------------
Форматируйте код и заключайте его при публикации в теги.
Скоро мне надоест и я начну удалять без предупреждения.
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

учитывай масимальное разрешение экрана. Если не ошибаюсь в паскале есть процедуры MaxX u MaxY
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
romanriddick
Сообщения: 16
Зарегистрирован: 06 июл 2010, 13:16

Делаетса очень легко
сначала переменным присваеваетса ширына и высота екрана , потом пишем функции перехода отекранных координат к "реальных" так чтоб например для екрана 640х480 при putpixel (0,0) точка ставала на 320х240
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

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

x:=Screen.Height div 2;
y:=Screen.Width div 2;
а это:
Image1.Canvas.Pen.Width := 1;
Image1.Canvas.Pen.Color := clred;
лучше вынести из тела цикла
Нет религии выше истины
flash1989
Сообщения: 135
Зарегистрирован: 01 сен 2010, 17:17

Пишите, сделаю
icq: 588002847
email: flash_1989@ukr.net
skype: rfhfcerf
Ответить