1 / 1 / 0
Регистрация: 01.11.2012
Сообщений: 29
1

Как сделать вращение четырехугольной пирамиды вокруг оси Ох, как в примере?

05.04.2014, 09:22. Показов 1702. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать вращение четырехугольной пирамиды вокруг оси Ох, как в примере?
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
uses crt,graphabc,events;
type Cube=array[1..8] of real;
var
i,e:integer;
a:real;
xx,yy,zz:array[1..8] of real;
x1,y1:array[1..8] of integer;
const
ang=pi/3; r=100;
x:cube=(0,r,r,0,0,r,r,0);
y:cube=(0,0,0,0,r,r,r,r);
z:cube=(0,0,r,r,0,0,r,r);
 
procedure show(c:byte);
begin
setwindowsize(640,480); //Размер окна
line(320,240,640,240); //Координатная сетка
line(320,0,320,240);
line(320,240,0,560); //Далее подписи
textout(300,5,'Y'); textout(620,250,'X'); textout(120,450,'Z');
setpencolor(RGB(c,c,c)); //Устанавливаем цвет
line(x1[1],y1[1],x1[2],y1[2]);
line(x1[1],y1[1],x1[4],y1[4]);
line(x1[1],y1[1],x1[5],y1[5]);
line(x1[2],y1[2],x1[3],y1[3]);
line(x1[2],y1[2],x1[6],y1[6]);
line(x1[3],y1[3],x1[7],y1[7]);
line(x1[3],y1[3],x1[4],y1[4]);
line(x1[4],y1[4],x1[8],y1[8]);
line(x1[5],y1[5],x1[6],y1[6]);
line(x1[5],y1[5],x1[8],y1[8]);
line(x1[6],y1[6],x1[7],y1[7]);
line(x1[7],y1[7],x1[8],y1[8]);
end;
 
begin
for e:=1 to 360 do
begin
a:=pi/180*e;
for i:=1 to 8 do
begin
xx[i]:=x[i];
yy[i]:=y[i]*cos(a)-z[i]*sin(a);
zz[i]:=z[i]*sin(a)+z[i]*cos(a);
x1[i]:=round(xx[i]-zz[i]*cos(ang)/2)+320;
y1[i]:=round(yy[i]-zz[i]*cos(ang)/2)+240;
end;
show(25);
setpencolor(15);
write(e);
delay(100);
clrscr;
inc(e);
end;
show(25);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2014, 09:22
Ответы с готовыми решениями:

Как реализовать вращение треугольника вокруг оси на компоненте image?
Использую формулу X := X*Cos(a) - Y*Sin(a); Y := X*Sin(a) + Y*Cos(a); для каждой точки. ...

Как произвести вращение вокруг локальной оси, если система координат задана матрицей поворота?
Есть локальная координатная система, которая задана одной матрицей поворота 3x3. Пространство...

Вращение планеты вокруг солнца, и вокруг своей оси
У меня есть Солнце, которое находиться в координатах(0.0.0), и нужно вращать планеты, как по...

Как сделать вращение вокруг центра верхней точки
Подскажите пожалуйста, как возможно сделать вращение вокруг центра верхней точки? (на картинке...

1
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
05.04.2014, 10:34 2
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
uses crt,graphabc;
type Pyr=array[1..5] of real;
var
i,e:integer;
a:real;
xx,yy,zz:array[1..5] of real;
x1,y1:array[1..5] of integer;
const
ang=pi/3; r=100;
x:Pyr=(0,r,r,0,r div 2);
y:Pyr=(0,0,0,0,-r);
z:Pyr=(0,0,r,r,r div 2);
 
procedure show(c:byte);
begin
setwindowsize(640,480); //Размер окна
line(320,240,640,240); //Координатная сетка
line(320,0,320,240);
line(320,240,0,560); //Далее подписи
textout(300,5,'Y'); textout(620,250,'X'); textout(120,450,'Z');
setpencolor(clRed); //Устанавливаем цвет
line(x1[1],y1[1],x1[2],y1[2]);
line(x1[1],y1[1],x1[4],y1[4]);
line(x1[1],y1[1],x1[5],y1[5]);
line(x1[2],y1[2],x1[5],y1[5]);
line(x1[3],y1[3],x1[2],y1[2]);
line(x1[3],y1[3],x1[4],y1[4]);
line(x1[3],y1[3],x1[5],y1[5]);
line(x1[3],y1[3],x1[4],y1[4]);
line(x1[4],y1[4],x1[5],y1[5]);
end;
 
begin
for e:=1 to 360 do
begin
a:=pi/180*e;
for i:=1 to 5 do
begin
xx[i]:=x[i];
yy[i]:=y[i]*cos(a)+z[i]*sin(a); //поиграйте со знаками + и -
zz[i]:=z[i]*sin(a)-z[i]*cos(a); //в этих 4х строчках
x1[i]:=round(xx[i]+zz[i]*cos(ang)/2)+320;
y1[i]:=round(yy[i]-zz[i]*cos(ang)/2)+240;
end;
show(25);
setpencolor(clBlue);
write(e);
delay(100);
clrscr;
inc(e);
end;
show(100);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2014, 10:34
Помогаю со студенческими работами здесь

Как сделать свободное вращение камеры вокруг начала координат?
Как сделать свободное вращение камеры вокруг начала координат ?

Как сделать, чтобы прямоугольник вращался вокруг своей оси?
Как сделать, чтобы прямоугольник вращался вокруг своей оси? Помогите пожалуйста!

Вращение букв вокруг оси
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Вращение прямоугольника вокруг оси
Программа должна вращать прямоугольник с заданными параметрами длины и ширины, вокруг оси. Общий...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru