Графика - Free Pascal
Формулировка задачи:
Добрый день!
Помогите пожалуйста с программой. Нарисовал снеговика, а вот раскрасить не получается. Цвет изменяется только у границ. Помогите пожалуйста.
Program Sneg; uses graph; var x, y: integer; begin initgraph(x, y,' '); setbkcolor(11); setcolor(11); x:= getmaxX div 2; y:= getmaxY-100; circle(x, y, 80); circle(x, y-140, 60); circle(x, y-240, 40); rectangle(x-35, y-330, x+35, y-280); rectangle(x-130, y-190, x-30, y-170); rectangle(x+30, y-190, x+130, y-170); line(x-15, y-220, x+15, y-220); line(x-25, y-230, x+5, y-245); line(x+5, y-245, x+5, y-230); line(x+5, y-230, x-25, y-230); circle(x-20, y-255, 5); circle(x+20, y-255, 5); setlinestyle(0, 0, 3); line(x-125, y-250, x-125, y+80); readln; end.
Решение задачи: «Графика»
textual
Листинг программы
Program Sneg; uses graph,wincrt; var x, y: integer; begin initgraph(x, y,' '); setcolor(11); setfillstyle(1,11); x:= getmaxX div 2; y:= getmaxY-100; fillellipse(x, y, 80,80); fillellipse(x, y-140, 60,60); fillellipse(x, y-240, 40,40); bar(x-130, y-190, x-30, y-170); bar(x+30, y-190, x+130, y-170); setcolor(7); setlinestyle(0, 0, 3); setfillstyle(1,7); bar(x-35, y-330, x+35, y-280); line(x-15, y-220, x+15, y-220); setcolor(11); line(x-125, y-250, x-125, y+80); setcolor(12); setlinestyle(0, 0, 1); line(x-25, y-230, x+5, y-245); line(x+5, y-245, x+5, y-230); line(x+5, y-230, x-25, y-230); setfillstyle(1,12); floodfill(x,y-235,12); setcolor(7); setfillstyle(1,7); fillellipse(x-20, y-255, 5,5); fillellipse(x+20, y-255, 5,5); readkey end.
Объяснение кода листинга программы
- Объявление переменных
x
иy
типаinteger
. - Инициализация графического режима с помощью функции
initgraph(x, y, ' ')
. - Установка цвета и стиля заполнения фигур с помощью функций
setcolor(11)
иsetfillstyle(1,11)
. - Вычисление координат центра первой окружности с помощью выражений
x:= getmaxX div 2;
иy:= getmaxY-100
. - Отображение первой окружности с помощью функции
fillellipse(x, y, 80,80)
. - Отображение второй окружности с помощью функции
fillellipse(x, y-140, 60,60)
. - Отображение третьей окружности с помощью функции
fillellipse(x, y-240, 40,40)
. - Отображение первого прямоугольника с помощью функции
bar(x-130, y-190, x-30, y-170)
. - Отображение второго прямоугольника с помощью функции
bar(x+30, y-190, x+130, y-170)
. - Установка цвета и стиля линии с помощью функций
setcolor(7)
иsetlinestyle(0, 0, 3)
. - Отображение горизонтальной линии с помощью функции
bar(x-35, y-330, x+35, y-280)
. - Отображение вертикальной линии с помощью функции
line(x-15, y-220, x+15, y-220)
. - Установка цвета и стиля линии на черный с помощью функций
setcolor(11)
иsetlinestyle(0, 0, 1)
. - Отображение линии с помощью функции
line(x-125, y-250, x-125, y+80)
. - Отображение линии с помощью функции
line(x-25, y-230, x+5, y-245)
. - Отображение линии с помощью функции
line(x+5, y-245, x+5, y-230)
. - Отображение линии с помощью функции
line(x+5, y-230, x-25, y-230)
. - Установка цвета и стиля заполнения на черный с помощью функций
setfillstyle(1,12)
. - Заливка прямоугольника с помощью функции
floodfill(x,y-235,12)
. - Отображение двух точек с помощью функции
fillellipse(x-20, y-255, 5,5)
. - Отображение двух точек с помощью функции
fillellipse(x+20, y-255, 5,5)
. - Чтение ключа с помощью функции
readkey
. - Конец программы с помощью ключевого слова
end
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д