Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 13:41   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию есть ли в Делфи процедура, которая рисует на форме круг заданого радиуса?

День добрый ! )
есть ли в Делфи процедура, которая рисует на форме круг заданого радиуса? если кто знает напишите, пожалуйста .
Заранее спасибо ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 08.05.2010, 14:06   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Ну вот например, что нашел в гугле:
Код:
Procedure DrawCircle(CenterX, CenterY, Radius: Integer; Canvas: TCanvas; Color :TColor);

procedure PlotCircle(x, y, x1, y1: Integer);
begin
  Canvas.Pixels[x + x1, y + y1] := Color;
  Canvas.Pixels[x - x1, y + y1] := Color;
  Canvas.Pixels[x + x1, y - y1] := Color;
  Canvas.Pixels[x - x1, y - y1] := Color;
  Canvas.Pixels[x + y1, y + x1] := Color;
  Canvas.Pixels[x - y1, y + x1] := Color;
  Canvas.Pixels[x + y1, y - x1] := Color;
  Canvas.Pixels[x - y1, y - x1] := Color;
end; var
  x, y, r: Integer;
  x1, y1, p: Integer;
begin
  x := CenterX;
  y := CenterY;
  r := Radius;
  x1 := 0;
  y1 := r;
  p := 3 - 2 * r;
  while ( x1 < y1 ) do
  begin
    plotcircle (x, y, x1, y1) ;
    if (p < 0) then
      p := p + 4 * x1 + 6
    else
    begin
      p := p + 4 * ( x1 - y1 ) + 10 ;
      y1 := y1 - 1 ;
    end;
    x1 := x1 + 1 ;
  end;
  if (x1 = y1) then
    plotcircle( x, y, x1, y1) ;
end;
p.s.
или как вариант еще:
canvas.Ellipse(x-radius,y-radius,x+radius,y+radius); // x, y - центр
Будь проще и люди к тебе потянутся

Последний раз редактировалось spamer; 08.05.2010 в 14:09.
spamer вне форума Ответить с цитированием
Старый 08.05.2010, 18:38   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
Хорошо премного благодарен ))

Вариант с
Код:
canvas.Ellipse(x-radius,y-radius,x+radius,y+radius); // x, y - центр
- то , что надо. Спасибо, товарищ ))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура с тремя параметрами, которая вызывается из дополнительного модуля vedro-compota Общие вопросы Delphi 5 03.05.2010 09:47
процедура, которая будет что-то делать пока зажата клавиша пробел. Porkman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2008 03:37
Опредилите попадает ли точка с координатами(х,у) в круг радиуса R Dog Помощь студентам 2 19.05.2008 19:14
процедура, которая вычисляет объем шара motaro Паскаль, Turbo Pascal, PascalABC.NET 2 21.01.2008 19:22