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

Получить мультфильм "Круги на воде"

05.05.2011, 16:56. Показов 2993. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Получить мультфильм "Круги на воде", используя концентрические окружности. Центры окружностей должны быть совмещены с центром экрана. Иллюзия движения создается последовательной сменой цветов всех окружностей, начиная с внутренней и кончая внешней. Обеспечить ввод максимального и минимального радиусов в диалоге, а также количество волн и последовательность сменяющихся цветов.(graph)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2011, 16:56
Ответы с готовыми решениями:

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

Круги на воде
Экран изображает бассейн с водой, в который бросили камень(в заданных координатах). От камня пошли...

"Круги на воде"
написать программу "круги на воде":на экране в произвольном месте появляется окружность,которая...

Получить мультфильм
Получить мультфильм, показывающий: а) идущего человечка; б) бегущего человечка; в) человечка,...

5
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
05.05.2011, 19:15 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
uses crt,graph;
const nmax=15;
var x,y,r1,r2,n,i,r,dr,b:integer;
    c:array[1..nmax] of integer;
    m:set of byte;
begin
clrscr;
repeat
write('Minimalnyj radius ot 5 do 30 r1=');
readln(r1);
until r1 in [5..30];
repeat
write('Maximalnyj radius ot 150 do 230 r2=');
readln(r2);
until r2 in [150..230];
repeat
write('Kolichestvo voln ot 1 do ',nmax,' n=');
readln(n);
until n in [1..15];
writeln('Введите порядок цветов от 1 до 15:');
m:=[];
for i:=1 to n do
 begin
  repeat
  write('cv[',i,']=');
  readln(c[i]);
  until(c[i] in [1..15])and not(c[i] in m);
  m:=m+[c[i]];
 end;
x:=0;
initgraph(x,y,'');
x:=getmaxX div 2;
y:=getmaxY div 2;
dr:=round((r2-r1)/(n-1));
r:=r1;
repeat
for i:=0 to n-1 do
 begin
  setcolor(c[i+1]);
  circle(x,y,r);
  r:=r+dr;
 end;
delay(1000);
b:=c[n];
for i:=n downto 2 do
c[i]:=c[i-1];
c[1]:=b;
r:=r1;
until keypressed;
end.
3
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 3
06.12.2011, 23:04 3
а можно это же задание тока на делфи через канву ??
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
07.12.2011, 11:06 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Delphi
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
const n=7;
type mas=array[1..n] of TColor;//тип массив цветов
//назначим 7 цветов, можно и по другому
const cv:mas=(clRed,clMaroon,clGreen,clAqua,clBlue,clFuchsia,clPurple);
var
  Form1: TForm1;
  r1,r2,dr,x1,y1,r:integer;
  c:mas;
implementation
 
{$R *.dfm}
//заготовка формы   и исходные данные
procedure TForm1.FormCreate(Sender: TObject);
begin
width:=400;
height:=480;
color:=clWhite;
Button1.Top:=height-70;
Timer1.Enabled:=false;
//координаты центра
x1:=ClientWidth div 2;
y1:=ClientHeight div 2;
r1:=40;
r2:=82;
dr:=round((r2-r1)/(n-1));
c:=cv;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
Timer1.Enabled:=true; //включим таймер
Timer1.Interval:=1000;
//нарисуем стартовое изображение
with Canvas do
 begin
  Pen.Width:=2;
  Brush.Style:=bsClear;
  r:=r1;
  for i:=0 to n-1 do
   begin
    Pen.Color:=c[i+1];
    Ellipse(x1-r,y1-r,x1+r,y1+r);
    r:=r+dr;
   end;
 end;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var i,r:integer;
    b:TColor;
begin
//сдвинем цвета вправо на 1
b:=c[n];
for i:=n downto 2 do
c[i]:=c[i-1];
c[1]:=b;
//снова нарисуем
with Canvas do
 begin
  Brush.Style:=bsClear;
  r:=r1;
  for i:=0 to n-1 do
   begin
    Pen.Color:=c[i+1];
    Ellipse(x1-r,y1-r,x1+r,y1+r);
    r:=r+dr;
   end;
 end;
end;
end.
Вложения
Тип файла: rar Круги на воде.rar (161.9 Кб, 101 просмотров)
2
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 3
07.12.2011, 14:50 5
Спасибо большое !
 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, нажмите кнопку "Спасибо" внизу самого поста.
0
Ruslan1234
21.11.2014, 10:27 6
А можно это же задание на с++

Добавлено через 12 секунд
А можно это же задание на с++
21.11.2014, 10:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2014, 10:27
Помогаю со студенческими работами здесь

Получить мультфильм «Круги на воде»
У меня лабораторная работа) не могу понять как это все сделать Получить мультфильм «Круги на ...

Получить мультфильм "Круги на воде"
Помогите с заданием!!! Получить мультфильм "Круги на воде" , используя семь концентрических...

Получить мультфильм "Круги на воде"
Помогите с заданием!!! Получить мультфильм "Круги на воде" , используя семь концентрических...

Круги на воде
Плиззз! помогите - очень надо написать код для создания графического эффекта "круги на воде"! или...

Круги на воде
Ребят, задали написать прогу бассейн с водой, в него кинули камень и от камня пошли круги по воде,...

Графика. Круги на воде
Не знаю к какому разделу относиться;) В технаре задали сделать картинку Круг а в кругу ещё 3-4...

FreeBasic круги на воде
Очень интересный код имитирующий распространение кругов на воде. Описание алгоритма тут Что меня...


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

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

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