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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 09:22   #1
lider24816
Пользователь
 
Регистрация: 21.12.2008
Сообщений: 17
По умолчанию Задача в Canvase

Нужно Изобразить не менее 6 пересекающихся окружностей разного цвета, построенных на основной окружности в центре экрана. Нужно сделать так ,чтобы окружности не заливались, чтобы при пересечении окружностей были видны их конуры
lider24816 вне форума
Старый 30.05.2009, 10:28   #2
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Олимпийский флаг:
Вложения
Тип файла: rar grafica.rar (4.8 Кб, 11 просмотров)
Жми на весы!!!
Chudo4258 вне форума
Старый 30.05.2009, 10:45   #3
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Немного другой вариант.
Код:
procedure TForm1.FormPaint(Sender: TObject);
var
  R : TRect;
  X0, Y0, I, X, Y : Integer;
  Ang : Double;
const
  Offs = 200;
  clr : array[1..6] of TColor = (clRed, clLime, clBlue, clGreen, clSilver, clFuchsia);
begin
  with Canvas do begin
    Pen.Color := clBlack;
    X0 := ClientWidth div 2;
    Y0 := ClientHeight div 2;
    R := Rect(X0 - Offs, Y0 - Offs, X0 + Offs, Y0 + Offs);
    Arc(R.Left, R.Top, R.Right, R.Bottom, R.left, R.Top, R.Left, R.Top);
    Ang := 0;
    for I := 1 to 6 do begin
      X := Round(sin(ang) * Offs + X0);
      Y := Round(cos(ang) * Offs + Y0);
      R := Rect(X - 50, Y - 50, X + 50, Y + 50);
      Pen.Color := clr[I];
      Arc(R.Left, R.Top, R.Right, R.Bottom, R.left, R.Top, R.Left, R.Top);
      Ang := Ang + (pi * 2) / 6;
    end;
  end;
end;
Скандербег вне форума
Закрытая тема


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