Форум программистов, компьютерный форум CyberForum.ru

Движение маятника в Borland 3.1 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
djvipmax
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 14
07.05.2012, 20:00     Движение маятника в Borland 3.1 #1
Написать программу имитирующую движение(без затухания) маятника. Помогите пожалуйста,не могу разобраться.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
07.05.2012, 20:25     Движение маятника в Borland 3.1 #2
Графика шоле?
djvipmax
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 14
07.05.2012, 20:39  [ТС]     Движение маятника в Borland 3.1 #3
да
есть ли какие нибудь формулы параметрические для задания движения по х и по у?
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
09.05.2012, 19:21     Движение маятника в Borland 3.1 #4
Цитата Сообщение от djvipmax Посмотреть сообщение
да
есть ли какие нибудь формулы параметрические для задания движения по х и по у?
Формулы для математического маятника без учёта трения?

Добавлено через 27 минут
маятник
djvipmax
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 14
11.05.2012, 15:32  [ТС]     Движение маятника в Borland 3.1 #5
Цитата Сообщение от Hi4ko Посмотреть сообщение
Формулы для математического маятника без учёта трения?

Добавлено через 27 минут
маятник
без учета( но если есть информация с учетом времени то предоставьте мне ее пожалуйста, для личного интереса)
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
11.05.2012, 16:02     Движение маятника в Borland 3.1 #6
Цитата Сообщение от djvipmax Посмотреть сообщение
без учета( но если есть информация с учетом времени то предоставьте мне ее пожалуйста, для личного интереса)
Посмотри внимательно pdf-ку, там внимательно всё написано)
В вакууме координата x меняется по гармоническому закону(синусоиде), а при учёте вязкого трения по экспоненциальной).
djvipmax
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 14
11.05.2012, 19:38  [ТС]     Движение маятника в Borland 3.1 #7
Цитата Сообщение от Hi4ko Посмотреть сообщение
Посмотри внимательно pdf-ку, там внимательно всё написано)
В вакууме координата x меняется по гармоническому закону(синусоиде), а при учёте вязкого трения по экспоненциальной).
а координата по у?

Добавлено через 12 минут
C
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
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<stdlib.h>
#include<math.h>
int x0,y0,x,y,l,dlinapodvesa=50;
float u=-3;
void main()
{
 
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");
errorcode = graphresult();
if(errorcode !=grOk)
  {
   cout<<"Graphicheskaia oshibka:%\n"<<grapherrormsg(errorcode);
   cout<<"Nagmite klavishy";
   getch();
   exit(1);
  }
 
setcolor(YELLOW);
 
line(getmaxx()/2-dlinapodvesa,getmaxy()/3,getmaxx()/2+dlinapodvesa,getmaxy()/3);
x0=getmaxx()/2; y0=getmaxy()/3;  x=getmaxx()/2;
 
 
while(!kbhit())
{
setcolor(RED);
line(x0,y0,x,y);
 
// [COLOR="Red"]тут нужно изменить  координаты  х и у. как это сделать?[/COLOR]
 
setcolor(YELLOW);
line(x0,y0,x,y);
 
}
 
 
 
getch();
closegraph();
}
Добавлено через 3 часа 3 минуты
удивительно, но это как то работает))причем я не понимаю почему)

C
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
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<stdlib.h>
#include<math.h>
const pi=22/7;
int x0,y0,x,y,l=300,dlinapodvesa=50,A=50,w=10,radius=10;
float u=-(pi)/3,t=0;
void main()
{
// cout<<"vvedite dlinu mayatnika i amplitudu i skorost' ";
// cin>>l>>A>>w;
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");
errorcode = graphresult();
if(errorcode !=grOk)
  {
   cout<<"Graphicheskaia oshibka:%\n"<<grapherrormsg(errorcode);
   cout<<"Nagmite klavishy";
   getch();
   exit(1);
  }
 
setcolor(YELLOW);
line(getmaxx()/2-dlinapodvesa,getmaxy()/3,getmaxx()/2+dlinapodvesa,getmaxy()/3);
x0=getmaxx()/2; y0=getmaxy()/3;  x=getmaxx()/2; y=y0;
while(!kbhit())
{
cleardevice();
line(getmaxx()/2-dlinapodvesa,getmaxy()/3,getmaxx()/2+dlinapodvesa,getmaxy()/3);
setcolor(YELLOW);
line(x0,y0,x,y-radius);
circle(x,y,radius);
delay(50);
 
x=x0+A*cos(w*t);
y=y0+sqrt(l*l-(x-x0)*(x-x0));
t+=0.01;
}
 
getch();
closegraph();
}
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
11.05.2012, 19:45     Движение маятника в Borland 3.1 #8
Цитата Сообщение от djvipmax Посмотреть сообщение
Добавлено через 3 часа 3 минуты
удивительно, но это как то работает))причем я не понимаю почему)

C
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
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<stdlib.h>
#include<math.h>
const pi=22/7;
int x0,y0,x,y,l=300,dlinapodvesa=50,A=50,w=10,radius=10;
float u=-(pi)/3,t=0;
void main()
{
// cout<<"vvedite dlinu mayatnika i amplitudu i skorost' ";
// cin>>l>>A>>w;
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"");
errorcode = graphresult();
if(errorcode !=grOk)
  {
   cout<<"Graphicheskaia oshibka:%\n"<<grapherrormsg(errorcode);
   cout<<"Nagmite klavishy";
   getch();
   exit(1);
  }
 
setcolor(YELLOW);
line(getmaxx()/2-dlinapodvesa,getmaxy()/3,getmaxx()/2+dlinapodvesa,getmaxy()/3);
x0=getmaxx()/2; y0=getmaxy()/3;  x=getmaxx()/2; y=y0;
while(!kbhit())
{
cleardevice();
line(getmaxx()/2-dlinapodvesa,getmaxy()/3,getmaxx()/2+dlinapodvesa,getmaxy()/3);
setcolor(YELLOW);
line(x0,y0,x,y-radius);
circle(x,y,radius);
delay(50);
 
x=x0+A*cos(w*t);
y=y0+sqrt(l*l-(x-x0)*(x-x0));
t+=0.01;
}
 
getch();
closegraph();
}
Почему?
Если ты по поводу строки 38, то всё нормально)
djvipmax
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 14
16.05.2012, 17:21  [ТС]     Движение маятника в Borland 3.1 #9
хех, показал преподу, говорит сделай чтоб не мерцало, через сетвижуалпэйдж... и говорит что разрешение экрана не квадратное и типо длина линии меняется... как это учесть?
через страницы я уже сделал, а вот растяжении линии не знаю...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2012, 23:41     Движение маятника в Borland 3.1
Еще ссылки по теме:

C++ Borland C++
C++ Изображение маятника
Вычислить период колебания маятника длины L C++

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

Или воспользуйтесь поиском по форуму:
djvipmax
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 14
26.05.2012, 23:41  [ТС]     Движение маятника в Borland 3.1 #10
может кому нибудь понадобится

C
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
#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
 
 
void main()
{
const pi=355/113, e=2721/1001;
float x0, y0, x, y, dlinapodvesa=100, A=150, w=300, radius=15, a;
float u=-7, t=0, l=300;
int gdriver = EGA, gmode = EGAHI, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk)
{
  printf("Graphics error: %s\n", grapherrormsg(errorcode));
  printf("Press any key to halt:");
  getch();
  exit(1);
}
cleardevice();
setbkcolor(134);
setcolor(YELLOW);
setactivepage(1);
line(getmaxx()/2-dlinapodvesa,1,getmaxx()/2+dlinapodvesa,1);
x0=getmaxx()/2;
y0=2;  
x=x0+l*sin(u); 
y=y0+sqrt(l*l-(x-x0)*(x-x0));  
A=(l*sin(u))/cos(w*t);
while(!kbhit())
{
setvisualpage(0);
setactivepage(1);
cleardevice();
setcolor(YELLOW);
line(x0,y0,x,y);
line(getmaxx()/2-dlinapodvesa,1,getmaxx()/2+dlinapodvesa,1);
setfillstyle(5,BLACK);
fillellipse(x-1,y-1,radius,radius*(getmaxx()/getmaxy()));
setvisualpage(1);
delay(10);
setactivepage(0); cleardevice();
 
x=x0+A*pow(e,-2.1*t)*cos(w*t);
y=(y0+sqrt(l*l-(x-x0)*(x-x0)));
t+=0.0001;
 
setcolor(YELLOW);
line(x0,y0,x,y);
line(getmaxx()/2-dlinapodvesa,1,getmaxx()/2+dlinapodvesa,1);
setfillstyle(1,BLACK);
fillellipse(x-1,y-1,radius,radius*(getmaxx()/getmaxy()));
}
getch();
closegraph();
}
Yandex
Объявления
26.05.2012, 23:41     Движение маятника в Borland 3.1
Ответ Создать тему
Опции темы

Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru