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

Центральное столкновение шаров - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Из файла в структуру http://www.cyberforum.ru/cpp-beginners/thread694368.html
как этот код: for (i = 0; i < N; i++) // Читаем информацию из файла { fscanf(f1,"%s\n",&Minfo.Family); fscanf(f1,"%d\n",&Minfo.Age); fscanf(f1,"%f\n",&Minfo.Weight); } переписать на С++, пробовал так но не получилось : for (int i=0; i<N; i++)
C++ Определить, каким днем недели является введенное число Добрый день помогите пожалуйста написать программу: 1) Составить программу, определяющую каким днем недели является введенное число, если известно, каким днем недели был первый день месяца. http://www.cyberforum.ru/cpp-beginners/thread694362.html
visual studio 2012 - ошибка "переопределение типа" C++
имею head.h #include <stdio.h> #include <iostream> #include <Windows.h> #pragma comment(lib, "ws2_32") using namespace std;
Проблемы с ответами C++
Please, помогите с ответами: Question 1/ A character array terminated with the null character is most correctly called Question 1 options: A) a string. B) a c-string. C) a character array. D) none of the above.
C++ Пропадают элементы при добавлении в базу http://www.cyberforum.ru/cpp-beginners/thread694351.html
Еще вопрос,почему когда добавляю из первой базы во вторую элементы ,и последним элементом добавляю во 2 базу первый из базы 1,А затем хочу обратно из базы 2 засунуть в базу 1 они тупо пропадают при добавлении в первую базу,как поправить? int NaMarshrut::dell(int emp_nomer)//На маршрут. Из базы 1 в 2 { nomer = emp_nomer; Element* q = start; pbeg = start; Element* temps; ...
C++ Как сделать чтобы при задании только И. Ф. не требовалось вводить О Не пойму как сделать чтобы при задании только И. Ф. не требовалось вводить О. Если ввожу Mary User - ждёт следующего ввода(фамилии). В случаях: Mary Average User == User, Mary A. Mary A. User == User, Mary A. Работает идеально. Надо так же при вводе только: Mary User выводить - User, Mary.#include <iostream> подробнее

Показать сообщение отдельно
devcpp2
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 3
11.11.2012, 11:07     Центральное столкновение шаров
Здравствуйте!
Написал программу для центрального столкновения двух шаров...но программа выполняется некорректно....подскажите, что не так
вот код:
const int dt = 1;

void BallDraw (double x, double y, double r, COLORREF color);

void Move (int Border_x, int Border_y);

void PhysicsBall (double* x, double* y, double* vx, double* vy,
int Border_x, int Border_y);

void Collision (double* x, double* vx, double r,
double r1, double* vx1, double m1, double m2, double* x1, int Border_x);

int main()
{
txCreateWindow(1000, 700);

int Border_x = txGetExtentX();
int Border_y = txGetExtentY();

Move (Border_x, Border_y);

return 0;
}

void BallDraw (double x, double y, double r, COLORREF color)
{
txSetFillColor(color);
txCircle(x, y, r);
}

void PhysicsBall (double* x, double* y, double* vx, double* vy,
int Border_x, int Border_y)
{
if(*x < 0 ) {*vx = -*vx; *x = 0; }
if(*y < 0 ) {*vy = -*vy; *y = 0; }
if(*x > Border_x ) {*vx = -*vx; *x = Border_x;}
if(*y > Border_y ) {*vy = -*vy; *y = Border_y;}
}

void Collision (double* x, double* vx, double r,
double r1, double* vx1, double m1, double m2, double* x1, int Border_x)
{
double dx = *x1 - *x;
double R = r+r1;
double z = dx;

if(dx < 0)
dx = - dx;

if(dx <= R)
{
*vx = *vx*(m1 - m2)/(m1 + m2) + *vx1*(2*m2)/(m1 + m2);
*vx1 = *vx*(2*m1)/(m1 + m2) + *vx1*(m2 - m1)/(m2 + m1);
if(*x1 <= 2*r)
*vx1 *= -1;

//if (m1 < m2) {*vx1 = -*vx1; *vx = - *vx;}
//if (m1 > m2) {*vx1 = -*vx1; *vx = *vx;}
}

/*if (z <= R && m1 == m2)
{
double dvx = *vx;
double dvx1 = *vx1;
*vx1 = -dvx; *vx = -dvx1;
} */
}

void Move (int Border_x, int Border_y)
{

double x = 30, y = 310;
double vx = 10, vy = 15;
double r = 20;
double m = 1;

double x1 = 550, y1 = 300;
double vx1 = 5, vy1 = 7;
double r1 = 30;
double m1 = 4;

while (true)
{
txBegin();

if (!GetAsyncKeyState(VK_SPACE))
{
txSetFillColor(TX_BLACK);
txClear();
}

BallDraw ( x, y, r, TX_GREEN);
BallDraw (x1, y1, r1, TX_BLUE);

x += vx*dt;
x1 += vx1*dt;

PhysicsBall ( &x, &y, &vx, &vy, Border_x, Border_y);
PhysicsBall (&x1, &y1, &vx1, &vy1, Border_x, Border_y);

cout << vx << ' ' << vx1 << '\n';

Collision ( &x, &vx, r, r1, &vx1, m, m1, &x1, Border_x);

cout << vx << ' ' << vx1 << '\n';

txSleep(10);

txEnd();
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru