Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 29.04.2020
Сообщений: 5

Изобразить на экране в аксонометрической проекции проволочный каркас правильной n угольной пирамиды

29.04.2020, 18:29. Показов 1552. Ответов 4

Студворк — интернет-сервис помощи студентам
Первый раз создаю тему, не судите строго) Выручите с задачей, совсем все плохо с программированием, задач много и сроки поджимают...

Изобразить на экране в аксонометрической проекции проволочный каркас правильной n угольной пирамиды с горизонтальным основанием, вращающийся вокруг своей высоты.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2020, 18:29
Ответы с готовыми решениями:

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

Изобразить на экране в аксонометрической проекции проволочный каркас куба
Изобразить на экране в аксонометрической проекции проволочный каркас куба, вращающийся вокруг вертикальной оси, проходящей через его центр

Найдите площадь полной поверхности правильной n-угольной пирамиды
Очень странная задача, много не нужного, кто разъяснит мне? Найдите площадь полной поверхности правильной n-угольной пирамиды, если: ...

4
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
02.05.2020, 18:32
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
uses GraphABC;
 
const
  maxN = 10;
  a = 150;
  dist = 500;
  dt = 0.05;
 
type
  pType = record
    x, y, z : Real;
  end;
  tPoint = record
    x, y : Integer;
  end;
 
var
  n : Integer;
  p : array [0..maxN] of pType;
  v : pType;
  c : tPoint;
  t : Real;
 
procedure InitPoints;
var
  i : Integer;
  R : Real;
begin
  c.x := WindowWidth div 2;
  c.y := WindowHeight div 3;
  R := a / 2 / sin(pi/n);
  for i := 0 to n do
    begin
      p[i].x := R * cos(2*pi*i/n);
      p[i].y := 0;
      p[i].z := R * sin(2*pi*i/n);
    end;
  v.x := 0;
  v.y := a;
  v.z := 0;
end;
 
function xRotation(angle : Real; t : pType) : pType;
var
  cosA, sinA : Real;
begin
  cosA := cos(angle); sinA := sin(angle);
  Result.x := t.x;
  Result.y := t.y * cosA + t.z * sinA;
  Result.z := - t.y * sinA + t.z * cosA;
end;
 
function yRotation(angle : Real; t : pType) : pType;
var
  cosA, sinA : Real;
begin
  cosA := cos(angle); sinA := sin(angle);
  Result.x := t.x * cosA - t.z * sinA;
  Result.y := t.y;
  Result.z := t.x * sinA + t.z * cosA;
end;
 
function winCoord(t : pType) : tPoint;
begin
  Result.x := c.x + Round(t.x * dist / (t.z + dist));
  Result.y := c.y + a div 2 - Round(t.y * dist / (t.z + dist));
end;
 
procedure DrawLine(angle : Real; a, b : pType);
var
  pa, pb : tPoint;
begin
  pa := winCoord(xRotation(pi/4, yRotation(angle, a)));
  pb := winCoord(xRotation(pi/4, yRotation(angle, b)));
  Line(pa.x, pa.y, pb.x, pb.y);
end;
 
procedure DrawPiramide(angle : Real);
var
  i : Integer;
begin
  ClearWindow;
  for i := 0 to n-1 do
    begin
      DrawLine(angle, v, p[i]);
      DrawLine(angle, p[i], p[i+1]);
    end;
  Redraw;
end;
 
begin
  Read(n);
  if (n > 2) and (n < 11) then
    begin
      SetPenColor(rgb(0,0,0));
      InitPoints;
      LockDrawing;
      t := 0;
      repeat
        DrawPiramide(t);
        Sleep(5);
        t := t + dt;
      until False;
    end
  else
    WriteLn('Значение n может быть от 3 до ', maxN, ' !');
end.
2
0 / 0 / 0
Регистрация: 29.04.2020
Сообщений: 5
07.05.2020, 17:29  [ТС]
А возможно отказаться от result?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.05.2020, 17:44
Pascal
1
2
3
4
5
6
7
8
9
10
11
function xRotation(angle : Real; t : pType) : pType;
var
  cosA, sinA : Real;
  p:pType;
begin
  cosA := cos(angle); sinA := sin(angle);
  p.x := t.x;
  p.y := t.y * cosA + t.z * sinA;
  p.z := - t.y * sinA + t.z * cosA;
  xRotation:=p;
end;
И зачем отказались?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
07.05.2020, 19:33
Цитата Сообщение от Husky_rrr Посмотреть сообщение
А возможно отказаться от result?
Зачем?
PABC легко переваривает…

В IDE нажмите F1 и ищите:

Справочник по языку — Процедуры и функции — Описание процедур и функций

В конце сказано:

Вместо имени функции, внутри тела функции можно использовать другую специальную переменную с именем Result. В отличие от имени функции, переменную Result можно использовать и в выражениях:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2020, 19:33
Помогаю со студенческими работами здесь

Нарисовать вращающийся относительно вертикальной оси контур правильной прозрачной N-угольной пирамиды
Напишите программу, которая рисует вращающийся относительно вертикальной оси контур пра-вильной прозрачной N-угольной пирамиды начальное...

Выполнить три вида проекции по заданной аксонометрической проекции
Головушка совсем не варит((((

Постройте изображение призмы в аксонометрической проекции
Постройте изображение призмы в аксонометрической проекции.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
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. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru