Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
{Sema}
1

Построить треугольник в двумерной декартовой системе координат. На паскале

05.07.2012, 18:07. Показов 3620. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Треугольник задан координатами вершин. Построить его, а затем перенести на десять единиц по оси OX и на пять единиц по оси OY; выполнить поворот относительно начала координат на угол π/4 радиан; растянуть по оси OY в два раза.
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2012, 18:07
Ответы с готовыми решениями:

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

Построить в декартовой системе координат
построить в декартовой системе координат, используя тип диаграммы "точечная с гладкими кривыми и...

Построить графики функций в декартовой системе координат
Построить графики функций 1. В декартовой системе координат 1- 2. В полярной системе...

Построить график функции в декартовой системе координат: y=dctg(kx)
Построить график функции в декартовой системе координат: y=dctg(kx)

1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.07.2012, 10:40 2
Лучший ответ Сообщение было отмечено как решение

Решение

Вот суть программы, переделывайте оформление как нужно, из условия не очень понятно.
Взято из этой книжки.
https://www.cyberforum.ru/atta... 1241779566

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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{------- Аффинные преобразования плоских фигур -------- }
uses graph;
const m=3;{треугольник}
      n=3;{размер матриц коэффициентов}
type mas=array[1..m] of real;
     mtr=array[1..n,1..n] of real;
var xa,ya,xb,yb:mas;
    a,r:mtr;
    xc,yc:integer;{центр экрана}
    ms:real;{масштаб для перевода реальных координат в экранные}
    i,j,k:byte;{счетчики циклов}
    s:string;{строка для вывода текста}
procedure Picture(x,y:mas;c:integer);{рисование треугольника с-цвет линий}
begin
setcolor(c);
moveto(xc+round(ms*x[m]),yc-round(ms*y[m]));
for i:=1 to m do lineto(xc+round(ms*x[i]),yc-round(ms*y[i]));
end;
procedure Ed; { присвоение матрице R значения единичной }
begin
for i:=1 to n do
 begin                             {  1 0 0  }
  for j:=1 to n do  r[i,j]:=0;     {  0 1 0  }
  r[i,i]:=1;                       {  0 0 1  }
 end;
end;
procedure Mult; {умножение матриц А и R:  R = B = A*R }
var b:mtr;
    z:real;
begin
for i:=1 to n do
for j:=1 to n do
 begin
  z:=0;
  for k:=1 to n do
  z:=z+a[i,k]*r[k,j];
  b[i,j]:=z
 end;
for i:=1 to n do
for j:=1 to n do
r[i,j]:=b[i,j]
end;
procedure Move(dx,dy:real);  {расчет матриц А и R для переноса фигуры}
begin  { на dx, dy}
for i:=1 to n do
 begin                         {  1  0 dx  }
  for j:=1 to n do a[i,j]:=0;  {  0  1 dy  }
  a[i,i]:=1                    {  0  0  1  }
 end;
a[1,3]:=dx;
a[2,3]:=dy;
Mult;
end;
procedure Rotate(u:real); {расчет матриц А и R для поворота  фигуры}
var c, s: real;                                                                               {---на угол alfa(рад)---}
begin                {  cos(u) -sin(u) 0  }
for i:=1 to 3 do     {  sin(u)  cos(u) 0  }
for j:=1 to 3 do     {   0       0     1  }
a[i,j]:=0;
a[3,3]:=1;
c:=cos(u);   a[1,1]:= c;  a[2,2]:=c;
s:=sin(u);   a[1,2]:=-s;  a[2,1]:=s;
Mult;
end;
procedure Scale(sx,sy:real); {расчет матриц А и R для масштабирования}
begin                        {фигуры: по оси Х - умножение на sx,  по оси Y - на sy}
for i:=1 to 3 do
for j:=1 to 3 do a[i,j]:=0;   {  sx 0  0  }
a[1,1]:=sx;                   {  0  sy 0  }
a[2,2]:=sy;                   {  0  0  1  }
a[3, 3]:=1;
Mult;
end;
procedure New_XY;{расчет новых координат фигуры по исходным}
begin           {с использованием матрицы преобразования R}
for i:=1 to m do
 begin
  xb[i]:=xa[i]*r[1, 1]+ ya[i]*r[1, 2]+ r[1, 3];
  yb[i]:=xa[i]*r[2, 1]+ ya[i]*r[2, 2]+ r[2, 3]
 end;
end;
 
 
begin
randomize;
initGraph(xc,yc,'');
xc:=getmaxX div 2; yc:=getmaxY div 2; { центр экрана }
ms:=(yc-30)/20;
{нарисуем оси}
line(0,yc,getmaxX,yc);{оси}
line(xc,0,xc,getmaxY);
for i:=1 to 20 do{максимальное количество засечек в одну сторону}
if i mod 2=0 then
  begin
    line(xc-3,yc-round(i*ms),xc+3,yc-round(i*ms));{засечки на оси У}
    line(xc-3,yc+round(i*ms),xc+3,yc+round(i*ms));
    {подпись оси У}
    str(i,s);
    outtextXY(xc-20,yc-round(i*ms),s);{соответственно засечкам}
    outtextXY(xc-25,yc+round(i*ms),'-'+s);
    line(xc+round(i*ms),yc-3,xc+round(i*ms),yc+3); {засечки на оси Х}
    line(xc-round(i*ms),yc-3,xc-round(i*ms),yc+3);
    {подпись оси Х}
    outtextXY(xc+round(i*ms),yc+10,s);
    outtextXY(xc-round(i*ms),yc+10,'-'+s);
  end;
{центр}
outtextXY(xc+5,yc+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,yc-10,'X');
outtextXY(xc+5,10, 'Y');
{зададим координаты треугольника так
чтобы все 4 изображения были в графике}
xa[1]:=-5;ya[1]:=-5;
xa[2]:=-10;ya[2]:=-10;
xa[3]:=-1;ya[3]:=-15;
Picture(xa,ya,12);{исходный}
setcolor(15);
outtextXY(xc+80,20,'Press Enter');
readln;
Ed;
Move(10,5); { перенос треугольника х+10, y+5}
New_XY;
Picture(xb,yb,14);
readln;
xa:=xb;ya:=yb;
Ed;
Rotate(pi/4); {поворот на pi/4 относительно начала координат}
New_XY;
Picture(xb,yb,13);
readln;
xa:=xb;ya:=yb;
Ed;
Scale(1,2); { растягивание по оси Y}
New_XY;
Picture(xb,yb,11);
readln;
end.
0
06.07.2012, 10:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2012, 10:40
Помогаю со студенческими работами здесь

Построить график заданных функций в декартовой системе координат
Помогите построить график заданных функции, давно не работал в maple:-| Построить графики заданных...

Построить линии, определяемые уравнениями в декартовой системе координат Oxy
Здравствуйте. Нужна помощь с задачей: построить линии, определяемые уравнениями в декартовой...

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

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


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

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