Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
litelpp
3 / 3 / 1
Регистрация: 03.05.2010
Сообщений: 69
#1

Нарисовать прямоугольник, который движется по синусоиде вдоль экрана - Turbo Pascal

23.10.2011, 11:44. Просмотров 338. Ответов 1
Метки нет (Все метки)

Нарисовать прямоугольник, который, вращаясь вокруг своего центра, движется по синусоиде вдоль экрана.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2011, 11:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нарисовать прямоугольник, который движется по синусоиде вдоль экрана (Turbo Pascal):

Нарисовать на экране прямоугольник желтого цвета, который движется по горизонтали
Нарисовать на экране прямоугольник желтого цвета, который движется по горизонтали, в прямом и обратном направлении, и за ним тянется «след»...

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

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

Нарисовать на экране круг зеленого цвета, который движется по горизонтали
Нарисовать на экране круг зеленого цвета, который движется по горизонтали, при достижении границы экрана превращается в квадрат и начинает...

Модуль Graph. Нарисовать овал, который движется по вертикали. При достижении границы меняет цвет
Нарисовать на экране овал зеленого цвета, который движется по вертикали по центру экрана. При достижении границы экрана овал меняет цвет на...

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

1
forgergg
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
23.10.2011, 19:02 #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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
uses Graph,crt;
type
points = record
x,y:integer;
end;
rectpoints = array[1..4] of points;
procedure drawrect(rect:rectpoints;xofs,yofs:integer);
var i:integer;
begin
for i:=1 to 4 do
 if i < 4 then line(rect[i].x+xofs,rect[i].y+yofs,rect[i+1].x+xofs,rect[i+1].y+yofs)
 else line(rect[i].x+xofs,rect[i].y+yofs,rect[1].x+xofs,rect[1].y+yofs);
end;
function DegToRad(deg:integer):real;
begin
DegToRad:=(deg*pi)/180;
end;
Procedure rotatepoints(var points:rectpoints;angle:integer);
var
i:integer;
rad,x0,y0:real;
begin
rad:=DegToRad(angle);
for i:=1 to 4 do begin
x0:=points[i].x*cos(rad) - points[i].y*sin(rad);
y0:=points[i].y*cos(rad) + points[i].x*sin(rad);
points[i].x:=round(x0);
points[i].y:=round(y0);
end;
end;
var
x1,y1,x0,y0,rw,rh,rotateangle,gd,gm,error:integer;
xStep,SinAmp,SinAngFreq,yOffset,xOffset:integer;
ar,r:real;
rect:rectpoints;
begin
gd := detect;
initGraph(gd,gm,'');
error:=GraphResult;
if error <> 0 then begin
   writeln(GraphErrorMsg(error));
   halt;
end;
rw:=50;
rh:=25;
 
x0:=0;
y0:=0;
x1:=rw;
y1:=rh;
 
rect[1].x := x0 - rw div 2;
rect[1].y := y0 - rh div 2;
rect[2].x := x0 + rw div 2;
rect[2].y := y0 - rh div 2;
rect[3].x := x0 + rw div 2;
rect[3].y := y0 + rh div 2;
rect[4].x := x0 - rw div 2;
rect[4].y := y0 + rh div 2;
rotateangle:=20;
xStep:=5;
SinAmp:=100;
SinAngFreq:=5;
setwritemode(1);
xOffset:=0;
yOffset:=getmaxY div 2;
repeat
rotatepoints(rect,rotateangle);
drawrect(rect,xOffset,yOffset);
delay(100) ;
drawrect(rect,xOffset,yOffset);
inc(xOffset,xStep);
yOffset:=round(sin(xOffset*SinAngFreq)*SinAmp)+getmaxY div 2;
if(xOffset >= getmaxx) then xOffset:=0;
until keypressed;
closeGraph;
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2011, 19:02
Привет! Вот еще темы с решениями:

Графика: Нарисовать прямоугольник который крутится вокруг одной из своих вершин
Нарисовать прямоугольник который крутится вокруг одной из своих вершин.

Нарисовать прямоугольник, нижняя сторона которого находится внизу экрана.внутри прямоугольника окружность
Помогите пожалуйста

нарисовать квадрат который в каждый момент своего движения касается одной из сторон к кругу с центром в центре экрана
Помогите парни , отакое задание &quot;нарисовать квадрат который в каждый момент своего движения касается одной из сторон к кругу с центром в...

Построение круга, который движется по траектории
Составить программу для построения объекта(круга), который движется по траекторий: y = x. Движение организовать слева направо.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru