Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810

Вывести эллипс, а затем закрасить его цветом формы

06.06.2015, 23:31. Показов 4618. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно эллипс который выводится закрасить цветом формы и
вывести в новом месте ,
в новом месте вывести не трудно ,а закрасить цветом формы не получается

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 var 
    x,y : integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin 
    x:= 200;y:= 200;
  with Canvas do begin
    Pen.Color:=clRed;
    Pen.Width:= 3; 
    Ellipse(x-2,y-2,x+2,y+2);
  end; 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
      canvas.brush.color:= form1.color;
     x:= 220;y:= 220;
    with Canvas do begin
      Pen.Color:=clRed;
      Pen.Width:= 3; 
      Ellipse(x-2,y-2,x+2,y+2);
    end; 
  end;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2015, 23:31
Ответы с готовыми решениями:

Вывести на экран монитора эллипс и закрасить его красным цветом с заполнением плотными точками
Вывести на экран монитора эллипс и закрасить его красным (Red) цветом с заполнением плотными точками (CloseDotFill), цвет фона экрана...

Вывести на экран монитора шестиугольник и закрасить его желтым цветом
Вывести на экран монитора шестиугольник и закрасить его желтым (Yellow) цветом с заполнением плотными точками (CloseDotFill), цвет фона...

Вывести на экран монитора круговой сектор и закрасить его зеленым цветом
Вывести на экран монитора круговой сектор и закрасить его зеленым (Green) цветом с наклонным заполнением (LtSlashFill), ...

1
36 / 30 / 13
Регистрация: 08.12.2012
Сообщений: 810
08.06.2015, 13:16  [ТС]
вот ,нашел решение специально для Тебя ujif
лучше (по-моему) для стирания эллипса использовать процедуру FloodFill
так как эллипс весь красный и окаемка у него тоже красная
поэтому он будет закрашиваться из своего центра (x1,y1) цветом
формы (цвет установлен в 25 строке проги) пока не будет достигнутa
граница (fsBorder) где начинается цвет формы (Form1.color)
эта граница находится как раз за окаемкой эллипса
все эти данные есть в процедуре FloodFill(x1,y1, Form1.color, fsBorder)
поэтому в отличии от RePaint где перерисовывается все окно
с пом. FloolFill мы стираем только сам эллипс
(писал для себя ,поэтому так подробно,внес очередной вклад в
отечественное программирование)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var
  Form1: TForm1;
 x,y,x1,y1:integer;
 a: real;//ugol povorota point v radianah
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  x:=clientwidth div 2;         // центр координат вокруг которых
  y:=clientheight div 2;        //вращается эллипс (всегда центр формы)
   canvas.pen.color:=clred;  // окаемка эллипса будет красной
  Timer1.Enabled:= false;
  Timer1.Interval:= 50;
  a:= 0;                            //начальный угол поворота эллипса
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //repaint;//перерисовывает все окно формы стирает эллипс вместо FloodFill
   with canvas do begin
    brush.color:= Form1.color;        //цвет которым будем стирать эллипс(цвет формы)
{FloodFill cтирает эллипс начиная с его центра (координаты x1,y1)}
  FloodFill(x1,y1,form1.color,fsBorder);
  x1:= x+round(r*sin(a));              //новые координаты
  y1:= y+round(r*cos(a));            //для вывода эллипса
   brush.color:=clred;                   //цвет для закраски эллипса
  ellipse(x1-4,y1-4,x1+4,y1+4);     //выводим эллипс на новом месте
   end;
 a:= a+0.1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:= not Timer1.Enabled;  //запускаем/останавливаем таймер
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2015, 13:16
Помогаю со студенческими работами здесь

Вывести на экран монитора квадрат и закрасить его светло-красным цветом с обратной наклонной заполнением
Вывести на экран монитора квадрат и закрасить его светло-красным (LightRed) цветом с обратной наклонной заполнением (LtBkSlashFill), цвет...

Нарисован прямоугольник, нужно закрасить его цветом фона
наткнулся на новую траблу.....вообщем у меня нарисован прямоугольник а когда я хочу закрасить его цветом фона оказывается закрашивание...

Построить круг и закрасить его каким-либо цветом
Нужно построить круг и закрасить его каким-либо цветом. Пробовал использовать процедуры PieSlice, FillEllipse, но у них получается...

Построить произвольный многоугольник, закрасить его выбранным цветом и стилем
Построить произвольный многоугольник, закрасить его выбранным цветом и стилем. Для выбора стиля предусмотреть выпадающий список, цвет...

Получить изображение куба и закрасить его верхнюю грань некоторым цветом
Написать программу получения изображения куба и закраски его верхней грани некоторым цветом после нажатия на клавишу Enter.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru