С Новым годом! Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 1
Регистрация: 11.12.2015
Сообщений: 18
1

Сетка и её закрашивание

27.02.2016, 22:44. Показов 4030. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1.Напишите программу, которая решает следующую задачу. В центре стандартного графического окна выводится квадратная сетка из черных линий (см. рисунок ниже). Количество ячеек в сетке задается константой, а размер ячейки вычисляется в программе по формуле: высота графического окна, деленная на количество ячеек. Вывод сетки на экран обязательно оформите отдельной процедурой. Сетка должна полностью помещаться в окне. Щелчок по ячейки левой клавишей мыши должен приводит к ее закрашиванию (например, в синий цвет), щелчок правой кнопкой мыши — к ее очищению (закрашивание в белый цвет). Щелчки по линиям сетки и за границами сетки игнорируются (не приводят к изменению цвета).
2.Предусмотрите в программе возможность закрашивать и очищать несколько ячеек. Щелчок по ячейке и удерживание левой клавиши мыши должен позволять при ее перемещении закрашивать те из них, через которые проходит указатель мыши. Щелчок по ячейке и удерживание правой клавиши мыши должен позволять при ее перемещении очищать те из них, через которые проходит указатель мыши.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2016, 22:44
Ответы с готовыми решениями:

Закрашивание
Я создал объект прямоугольник, и внутри него я нарисовал 10 прямоугольников линиями. Можно ли...

Закрашивание
<?php function rndrgb($img,$color,$min,$max){ srand(); $rnd = mt_rand(150,255); switch...

StringGrid - закрашивание
Подсчитать количество локальных максимумов в массиве целых чисел. Локальный максимум — такой...

Закрашивание областей
как закрасить, чтобы цвет не выходила за пределы окружности

2
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
28.02.2016, 13:22 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Первая часть мармезонского балета.
Pascal
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
uses graphABC;
const n=40;
var g,c:Color;
    h,x,y:integer;
procedure MouseDown(x,y,mousebutton: integer);
var k:byte;
begin
k:=0;
g:=GetPixel(x,y);
if (GetRed(g)=0)and(GetGreen(g)=0)and(GetBlue(g)=0) then k:=1;
if mousebutton=1 then c:=clRed else if mousebutton=2 then c:=clWhite;
if(x>(Window.Width-n*h) div 2)and(x<Window.Width-(Window.Width-n*h) div 2)then
 begin
  if k=1 then floodfill(x,y,clBlack)
  else floodfill(x,y,c)
 end; 
end;
var i:byte;
begin
h:=Window.Height div n;
x:=(Window.Width-n*h) div 2;
y:=1;
//pen.Width:=4;
for i:=0 to n do
 begin
  line(x+i*h,1,x+i*h,Window.Height-1);
  line(x,y+i*h,Window.Width-x,y+i*h);
 end; 
onmousedown:=MouseDown; 
end.
Добавлено через 55 минут
Вторая часть
Pascal
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
uses graphABC;
const n=40;
var g,c:Color;
    h,x,y:integer;
    f:boolean=false;
procedure MouseDown(x,y,mousebutton: integer);
var k:byte;
begin
k:=0;
g:=GetPixel(x,y);
if (GetRed(g)=0)and(GetGreen(g)=0)and(GetBlue(g)=0) then k:=1;
if mousebutton=1 then c:=clRed else if mousebutton=2 then c:=clWhite;
if(x>(Window.Width-n*h) div 2)and(x<Window.Width-(Window.Width-n*h) div 2)then
 begin
  if k=1 then floodfill(x,y,clBlack)
  else floodfill(x,y,c)
 end; 
f:=true; 
end;
procedure MouseMove(x,y,mousebutton: integer);
var k:byte;
begin
if f then begin
k:=0;
g:=GetPixel(x,y);
if (GetRed(g)=0)and(GetGreen(g)=0)and(GetBlue(g)=0) then k:=1;
if mousebutton=1 then c:=clRed else if mousebutton=2 then c:=clWhite;
if(x>(Window.Width-n*h) div 2)and(x<Window.Width-(Window.Width-n*h) div 2)then
 begin
  if k=1 then floodfill(x,y,clBlack)
  else floodfill(x,y,c)
 end; 
end; 
end;
procedure MouseUp(x,y,mousebutton: integer);
begin
if mousebutton in [1,2] then f:=false;
 {begin
  x:=0;
  y:=0;
 end;} 
end;
var i:byte;
begin
h:=Window.Height div n;
x:=(Window.Width-n*h) div 2;
y:=1;
//pen.Width:=4;
for i:=0 to n do
 begin
  line(x+i*h,1,x+i*h,Window.Height-1);
  line(x,y+i*h,Window.Width-x,y+i*h);
 end; 
onmousedown:=MouseDown; 
onmousemove:=MouseMove;
onmouseup:=MouseUp;
end.
1
0 / 0 / 1
Регистрация: 11.12.2015
Сообщений: 18
28.02.2016, 21:20  [ТС] 3
Puporev, спс.
0
28.02.2016, 21:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2016, 21:20
Помогаю со студенческими работами здесь

Stringgrid закрашивание
Есть 1 стока и 3 стобца. Нужно чтобы если в 3 столбце слово 'on' то тогда вся строка закрашивалась...

Закрашивание треугольника
Не получается закрасить треугольник синим цветом. В чём ошибка?Uses crt,graph; var...

Закрашивание области
Здравствуйте!!! Помогите мне закрасить область: A:=plot(,phi=0..Pi,color=,coords=polar):...

GD закрашивание пикселей
Так вообщем беру картинку, определяю цвет пикселя, и крашу в один или другой цвет. Картинка...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru