• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Узор из квадратов

  • Автор темы Автор темы iks2
  • Дата начала Дата начала

iks2

Новые
Регистрация
22 Окт 2016
Сообщения
62
Реакции
0
Баллы
0
Узор из квадратов

Требуется написать программу, которая рисует узор, представленный на картинке. Собственно не требуется делать точную копию, но так, чтобы было похоже. Предлагаемая программа это делает.

Код:
DECLARE SUB f (x!, y!, r!, p!)
CLS

CONST k = 3.5
SCREEN 11
WINDOW (-320, 240)-(320, -240)
CALL f(0, 0, 100, 3)
END

SUB f (x, y, r, p)
   IF p > 0 THEN
      s = r - 1
      LINE (x - r, y + r)-(x + r, y - r), , B
      LINE (x - s, y + s)-(x + s, y - s), 0, BF
      FOR i = 1 TO 10000: NEXT
      CALL f(x, y, r / k, p - 1)
      CALL f(x + r, y, r / k, p - 1)
      CALL f(x + r, y + r, r / k, p - 1)
      CALL f(x, y + r, r / k, p - 1)
      CALL f(x - r, y + r, r / k, p - 1)
      CALL f(x - r, y, r / k, p - 1)
      CALL f(x - r, y - r, r / k, p - 1)
      CALL f(x, y - r, r / k, p - 1)
      CALL f(x + r, y - r, r / k, p - 1)
   END IF
END SUB
 

Вложения

  • 509.gif
    509.gif
    4.4 KB · Просмотры: 107
Требуется написать программу, которая рисует узор, представленный на картинке. Собственно не требуется делать точную копию, но так, чтобы было похоже.
Да легко (Паскаль; GrfStart - самописный модуль инициализации графики):
Код:
Uses CRT, Graph, GrfStart;

Var
 i,j,k,m:Word;

Procedure RCT(Xc,Yc,A:Word);
begin
 Bar(Xc-A,Yc-A,Xc+A,Yc+A);
 Rectangle(Xc-A,Yc-A,Xc+A,Yc+A);
end;

Begin
 INITIALIZE;
 ClearDevice;
 SetFillStyle(SolidFill,GetBkColor);
 SetLineStyle(SolidLn,0,ThickWidth);
 RCT((GetMaxX div 2),(GetMaxY div 2), 140);
 for i:=0 to 2 do
  for j:=0 to 2 do
   begin
    RCT((GetMaxX div 2)-140+j*140,(GetMaxY div 2)-140+i*140, 40);
    for k:=0 to 2 do
     for m:=0 to 2 do
      RCT((GetMaxX div 2)-180+j*140+m*40,(GetMaxY div 2)-180+i*140+k*40, 10);
   end;
 ReadKey
End.
 

Вложения

  • AA01.webp
    AA01.webp
    10.6 KB · Просмотры: 68
Назад
Сверху