Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2022, 12:37   #1
Aleksos
Новичок
Джуниор
 
Регистрация: 14.12.2022
Сообщений: 3
Вопрос Семь разноцветных одинаковых равносторонних треугольников

Сделать в Pascal семь разноцветных одинаковых равносторонних треугольников, которые соприкасаются вершинами в одной точке. Длина основания треугольника вводится с клавиатуры.
Aleksos вне форума Ответить с цитированием
Старый 14.12.2022, 16:16   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
type
  TPoint = packed record
    x, y: Single;
  end;

function Point(aX, aY: Single): TPoint;
begin
  with Result do
    x := aX;
    y := aY;
  end;
end;

procedure Triangle(A, B, C: TPoint; Color: Cardinal);
begin
  SetColor(Color); // Определяем цвет для рисования (имя функции и набор параметров может отличаться для разных режимов)

// Рисуем границы треугольника (имена функций и наборы параметров могут отличаться для разных режимов)
  MoveTo(Round(A.x, Round(A.y));
  LineTo(Round(B.x), Round(B.y));
  LineTo(Round(C.x), Round(C.y));
  LineTo(Round(A.x), Round(A.y));

// Заливаем его цветом (имя функции и набор параметров могут отличаться для разных режимов)
  Fill(Round((A.x + B.x + C.x) / 3), Round((A.y + B.y + C.y) / 3), Color); // точка в центре треугольника для его заливки соответствующим цветом
end;

CONST
  d: single = 180 / (7 * pi);

VAR
  color: array [0 .. 6] of Cardinal = ($FFFFFF, $0000FF, $00FF00, $00FFFF, $FF0000, $FF00FF, $FFFF00);
  i: Integer; r, x, y: single;

BEGIN
// Инициализация вывода графики или создание окна
// ...

// Рисование равностороннего семиугольника состоящего из треугольников
  x := 100; y := 100; r := 75;
  for i := 0 to 6 do
    Triangle(
      Point(x, y),
      Point(x + r * sin(d * i), y + r * cos(d * i)),
      Point(x + r * sin(d * (i + 1)), y + r * cos(d * (i + 1))),
      color[i]);
END.

Последний раз редактировалось macomics; 14.12.2022 в 16:21.
macomics вне форума Ответить с цитированием
Старый 14.12.2022, 17:19   #3
Aleksos
Новичок
Джуниор
 
Регистрация: 14.12.2022
Сообщений: 3
По умолчанию

Извиняюсь, в PascalABC.NET.
Aleksos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Задача по подсчету количества равносторонних треугольников Богда Помощь студентам 2 18.11.2021 12:48
VBA Exсel В одной и той-же ячейке на каждом листе есть определенная цифра, нужно сделать подсчет за последние семь дней, то есть за последние семь листов. 2dm Microsoft Office Excel 5 31.07.2021 18:15
нарисуйте сетку 20х20, состоящую из разноцветных прямоугольных треугольников четырех видов PascalABC(GraphAbC) patriot148 Паскаль, Turbo Pascal, PascalABC.NET 1 19.11.2015 09:11
Подсчитать количество равносторонних треугольников с вершинами в заданном множестве точек на плоскости (Delphi) dea_celeste Помощь студентам 4 17.05.2012 15:33
Реализовать программу сбора елки из треугольников. Используя объектные структуры, создать 6 треугольников разного размера dyozik Общие вопросы Delphi 4 05.12.2011 11:52