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

Вращение прямоугольника вокруг точки

11.06.2013, 01:45. Показов 3143. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста, прямоугольник вращается, Но, "след" за собой оставляет, не стирается предыдущее положение прямоугольника. Вроде должна с помощью "cleardevice", но работает только если его удалить, не понимаю почему так. И еще хотела узнать как сделать, чтобы прямоугольник вращался относительно заданной точки.
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
program three;
uses crt,GraphABC;
var
a,b: integer;
d,m : smallint;
x1,x2,x3,x4,y1,y2,y3,y4: integer;
alpha,beta,koef : real;
x0,y0 : integer;
ch : char;
begin
clrscr;
alpha := 0;
koef := 1;
x0 := 300;  
y0 := 300;
a := 100;   
b := 200;   
beta := arctan(b/a);
repeat
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x4,y4);
line(x4,y4,x1,y1);
 
x1 := x0;
y1 := y0;
x2 := x0+round(a*cos(alpha));
y2 := y0+round(a*sin(alpha));
x3 := x0+round(sqrt(sqr(a)+sqr(b))*cos(alpha-beta));
y3 := y0+round(sqrt(sqr(a)+sqr(b))*sin(alpha-beta));
x4 := x0+round(b*cos(alpha-pi/2));
y4 := y0+round(b*sin(alpha-pi/2));
 
alpha := alpha + koef*0.1;
if alpha>=2*pi then alpha := 0;
delay(70);
cleardevice;
 
if keypressed then
 begin
  ch := readkey;
  if ch = '1' then koef := 1
  else if ch='2' then koef := -1
  else if ch=#27 then break;
 end;
until ch=#27;
 
 
end.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2013, 01:45
Ответы с готовыми решениями:

Вращение многоугольника вокруг произвольной точки
Всем здравствуйте. Прошу помощи. Суть задания:написать программу, реализующую вращение...

Организовать вращение отрезка вокруг своего центра
Организовать вращение отрезка вокруг своего центра. Помогите!

Отобразить вращение прямоугольника, используя модуль crt
Добрый день, форумчане. есть вопрос. Реально ли сделать такое, используя только модуль CRT. Вот...

Вращение вокруг одной из своих вершин
Буду благодарен если кто то поможет!!! Изобразить на экране треугольник, вращающийся в плоскости...

1
SausageFlat
242 / 221 / 154
Регистрация: 19.08.2012
Сообщений: 499
Записей в блоге: 1
11.06.2013, 08:21 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
54
55
program three;
 
uses
  crt, GraphABC;
 
var
  a, b: integer;
  d, m: smallint;
  x1, x2, x3, x4, y1, y2, y3, y4: integer;
  alpha, beta, koef: real;
  x0, y0: integer;
  ch: char;
 
begin
  clrscr;
  alpha := 0;
  koef := 1;
  x0 := 300;  
  y0 := 300;
  a := 100;   
  b := 200;   
  beta := arctan(b / a);
  repeat
    lockdrawing;
    clearwindow;
    line(x1, y1, x2, y2);
    line(x2, y2, x3, y3);
    line(x3, y3, x4, y4);
    line(x4, y4, x1, y1);
    
    x1 := x0;
    y1 := y0;
    x2 := x0 + round(a * cos(alpha));
    y2 := y0 + round(a * sin(alpha));
    x3 := x0 + round(sqrt(sqr(a) + sqr(b)) * cos(alpha - beta));
    y3 := y0 + round(sqrt(sqr(a) + sqr(b)) * sin(alpha - beta));
    x4 := x0 + round(b * cos(alpha - pi / 2));
    y4 := y0 + round(b * sin(alpha - pi / 2));
    
    alpha := alpha + koef * 0.1;
    if alpha >= 2 * pi then alpha := 0;
    delay(70);
    redraw;
    
    if keypressed then
    begin
      ch := readkey;
      if ch = '1' then koef := 1
      else if ch = '2' then koef := -1
      else if ch = #27 then break;
    end;
  until ch = #27;
  
  
end.
0
11.06.2013, 08:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2013, 08:21
Помогаю со студенческими работами здесь

Вращение точки по окружности
Здравствуйте! Объясните пожалуйста как вращать точку по окружности, а также, как перемещать её по...

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

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

Графика: Движение точки вокруг квадрата
Здраствуйте. Никак неполучается написать программу в которой бы точка двигалась вокруг квадрата. ...


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

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