Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2014, 22:07   #1
Bayt
Новичок
Джуниор
 
Регистрация: 29.05.2014
Сообщений: 2
По умолчанию Windows Forms C++ Хаотичное движение частицы

Помогите решить задачу:
Частица (от заданной начальной точки) совершает хаотичное движение, двигаясь в случайном направлении на случайное расстояние (в пределах экрана). Получить на экране траекторию движения частицы до прерывания с клавиатуры (трением и потере энергии при ударах о границы пренебречь)
Bayt вне форума Ответить с цитированием
Старый 29.05.2014, 23:12   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

В чем проблема то? Давайте то что наработали
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 30.05.2014, 09:41   #3
Bayt
Новичок
Джуниор
 
Регистрация: 29.05.2014
Сообщений: 2
По умолчанию

вот, все что есть
в панельке указываешь координаты где она находиться будет
расчитывается угол и вроде такойже на который от удара об стенку дожна она переместится


private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventA rgs^ e) {
Graphics ^g = panel1->CreateGraphics();
g->FillEllipse(Brushes::White, myPoint.X, myPoint.Y, 5, 5);
}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Graphics ^g = panel1->CreateGraphics();
g->Clear(Color::Green);
myPoint = Point(Convert::ToInt32(textBox1->Text), Convert::ToInt32(textBox2->Text));
g->FillEllipse(Brushes::White, myPoint.X, myPoint.Y, 5, 5);
}

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
Graphics ^g = panel1->CreateGraphics();
g->Clear(Color::Green);
g->FillEllipse(Brushes::White, myPoint.X, myPoint.Y, 5, 5);
timer1->Enabled = true;
}

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
Random ^rand = gcnew Random();
int distance = rand->Next(1000);
int angle = rand->Next(360);
Graphics ^g = panel1->CreateGraphics();
SolidBrush ^point = gcnew SolidBrush(Color::Black);
while(distance > 0)
{
int a1,a2,a3,a4;
a1 = Math::Atan2(myPoint.Y, panel1->Width - myPoint.X);
a2 = Math::PI + Math::Atan2(myPoint.Y, myPoint.X);
a3 = Math::PI + Math::Atan2(panel1->Height - myPoint.Y, myPoint.X);
a4 = 2 * Math::PI + Math::Atan2(panel1->Height - myPoint.Y,panel1->Width - myPoint.X);
if (a1 < angle && a2 > angle)
{
//1
int dy = myPoint.Y;
int dx = dy / Math::Tan(angle);
int d = Math::Sqrt(dx * dx + dy * dy);
distance = distance - d;
angle = 1 / 2 * Math::PI + angle;
}
else
if (a2 < angle && a3 > angle)
{
//2
int dx = myPoint.X;
int dy = dx * Math::Tan(angle);
int d = Math::Sqrt(dx * dx + dy * dy);
distance = distance - d;
angle = 1 / 2 * Math::PI + angle;
}
else
if (a3 < angle && a4 > angle)
{
//3
int dy = panel1->Height - myPoint.Y;
int dx = dy / Math::Tan(angle);
int d = Math::Sqrt(dx * dx + dy * dy);
distance = distance - d;
angle = 1 / 2 * Math::PI + angle;

}
else
{
//4
int dx = panel1->Width - myPoint.X;
int dy = dx * Math::Tan(angle);
int d = Math::Sqrt(dx * dx + dy * dy);
distance = distance - d;
angle = 1 / 2 * Math::PI + angle;
}
}
}

private: System::Void Form1_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEve ntArgs^ e) {
timer1->Enabled = false;
}
Bayt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с# windows forms Илья2014 Windows Forms 2 15.02.2014 22:38
Windows Forms С++ Aleks1994 Помощь студентам 2 04.04.2013 18:40
Хаотичное расположение картинок Putin-mode Общие вопросы Delphi 4 02.09.2012 10:52
Windows Forms masashama Windows Forms 12 14.02.2011 16:14
windows.forms *stRong* Помощь студентам 0 04.06.2010 04:39