Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 24

Нарисовать квадраты из точек

03.10.2015, 08:00. Показов 2462. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
5. Нарисовать квадрат от точки (0, 0) до (255, 255) используя свойства Canvas.Pixels[x, y]. Цвет
точек определять по формуле (256*x + y).
6. Аналогично 5, только размер квадрата 512х512 и цвет каждой точки определять по формуле
RGB(z, 0, 0), где z равно:
а. sin(x*y/8192);
б. sin(x/32)*cos(y/32);
в. sin((x-256)*(y-256)/8192).
Можно использовать свою формулу.
Примечание: при использовании функций sin или cos результат будет принадлежать интервалу [-1,1]. А параметры функции RGB должны находиться в интервале [0, 255].
Кроме того, необходимо округлить z до ближайшего целого, так как функция RGB работает только
с целыми числами.
7. Усложненный вариант 6. Дополнительно определяются координаты (после вычисления z):
rx:=256+((x-y)*cos(pi/6))/2;
ry:=128+((x+y)*sin(pi/6) – z/4)/2.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2015, 08:00
Ответы с готовыми решениями:

Как нарисовать график массива точек x[i]?
program Project1; {$APPTYPE CONSOLE} uses SysUtils; const h=0.01; mu=0.1; n=100; var Fitm1:real; x: array of real;...

Нарисовать на экране заданное множество точек
Здравствуйте!Пожалуйста,помогите с программой. Во множестве точек на плоскости найти пару точек с максимальным расстоянием между...

Как в делфи нарисовать множество точек?
Здрасте вам! Мне нужно нарисовать множество точек на форме (штук 10). Координаты 3-мя способами ввести: с клавиатуры, рандомом и из файла....

6
03.10.2015, 08:15
 Комментарий модератора 
Объединил 3 задачи поскольку условие 6 зависят от 5, а 7 от 5 и 6. В отдельных темах непонятно.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2015, 09:27
Лучший ответ Сообщение было отмечено Alecksandra как решение

Решение

6.
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
40
41
42
43
44
45
46
47
48
49
50
51
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Tag:=1; //присвоим значение tag кнопки=1 (было 0)
PaintBox1.OnPaint(Sender);
end;
 
procedure TForm1.PaintBox1Paint(Sender: TObject);
var x,y,z:integer;
begin
if Button1.Tag=1 then //если кнопка нажата, рисуем
 begin
  case RadioGroup1.ItemIndex of
  0:begin
    for y:=0 to 511 do
    for x:=0 to 511 do
     begin
      z:=round(255/2+sin(x*y/8192)*255/2);
      PaintBox1.Canvas.Pixels[x,y]:=RGB(z,0,0);
     end;
    end;
  1:begin
    for y:=0 to 511 do
    for x:=0 to 511 do
     begin
      z:=round(255/2+sin(x/32)*cos(y/32)*255/2);
      PaintBox1.Canvas.Pixels[x,y]:=RGB(z,0,0);
     end;
    end;
  2:begin
    for y:=0 to 511 do
    for x:=0 to 511 do
     begin
      z:=round(255/2+sin((x-256)*(y-256)/8192)*255/2);
      PaintBox1.Canvas.Pixels[x,y]:=RGB(z,0,0);
     end;
    end;
  else
   begin
    showmessage('Вы не выбрали формулу');
    exit;
   end;
  end;
 end;
 
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
Вложения
Тип файла: rar 6.rar (168.5 Кб, 3 просмотров)
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2015, 09:37
Лучший ответ Сообщение было отмечено Alecksandra как решение

Решение

7.
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Tag:=1; //присвоим значение tag кнопки=1 (было 0)
PaintBox1.OnPaint(Sender);
end;
 
procedure TForm1.PaintBox1Paint(Sender: TObject);
var x,y,z,rx,ry:integer;
begin
if Button1.Tag=1 then //если кнопка нажата, рисуем
 begin
  case RadioGroup1.ItemIndex of
  0:begin
    for y:=0 to 511 do
    for x:=0 to 511 do
     begin
      z:=round(255/2+sin(x*y/8192)*255/2);
      rx:=256+round(((x-y)*cos(pi/6))/2);
      ry:=128+round(((x+y)*sin(pi/6)-z/4)/2);
      PaintBox1.Canvas.Pixels[rx,ry]:=RGB(z,0,0);
     end;
    end;
  1:begin
    for y:=0 to 511 do
    for x:=0 to 511 do
     begin
      z:=round(255/2+sin(x/32)*cos(y/32)*255/2);
      rx:=256+round(((x-y)*cos(pi/6))/2);
      ry:=128+round(((x+y)*sin(pi/6)-z/4)/2);
      PaintBox1.Canvas.Pixels[rx,ry]:=RGB(z,0,0);
     end;
    end;
  2:begin
    for y:=0 to 511 do
    for x:=0 to 511 do
     begin
      z:=round(255/2+sin((x-256)*(y-256)/8192)*255/2);
      rx:=256+round(((x-y)*cos(pi/6))/2);
      ry:=128+round(((x+y)*sin(pi/6)-z/4)/2);
      PaintBox1.Canvas.Pixels[rx,ry]:=RGB(z,0,0);
     end;
    end;
  else
   begin
    showmessage('Вы не выбрали формулу');
    exit;
   end;
  end;
 end;
 
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
Вложения
Тип файла: rar 7.rar (168.7 Кб, 2 просмотров)
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2015, 09:50
Лучший ответ Сообщение было отмечено Alecksandra как решение

Решение

5.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Tag:=1; //присвоим значение tag кнопки=1 (было 0)
PaintBox1.OnPaint(Sender);
end;
 
procedure TForm1.PaintBox1Paint(Sender: TObject);
var x,y,z:integer;
begin
if Button1.Tag=1 then //если кнопка нажата, рисуем
 begin
  for y:=0 to 255 do
  for x:=0 to 255 do
  PaintBox1.Canvas.Pixels[x,y]:=256*x+y;
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
Вложения
Тип файла: rar 5.rar (158.3 Кб, 6 просмотров)
1
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 24
03.10.2015, 10:36  [ТС]
Puporev, Спасибо вам большое!!! С первыми 3 задания разобралась. Даже получилось сделать немного похожие задачи.

Добавлено через 1 минуту
Puporev, А можете еще прислать процедуру очистки формы?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2015, 10:38
Alecksandra, Вам там написали в теме про глупость вопроса. Что за форма, что на ней, от чего ее чистить? Разберитесь и напишите в той теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.10.2015, 10:38
Помогаю со студенческими работами здесь

Как нарисовать много точек, если в классе Graphics рисование точек не предусмотрено вообще?
Делаю свой граф. редактор. В нем нужно линии строить так, чтобы они состояли из точек. DrawPoint в классе Graphics нет, как быть? если...

Квадраты вместо точек
Доброго времени суток! У меня опять вопрос... В общем в разных браузерах отображается форма входа (а конкретнее точки в поле ввода)...

Нарисовать круги и квадраты
Построить изображение, используя оператор цикла:

Нарисовать в Lazarus квадраты и солнце
Надо нарисовать это в Lazarus, но я совершенно ничего не понимаю. А времени все досконально изучать нет. Буду премного благодарен за...

Нарисовать вложенные квадраты в цикле
Выручите пожалуйста с программой мне надо сделать Через Turbo Pascal как на рисунке только промежутки должны быть одинаковы И сделано это...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru