Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/41: Рейтинг темы: голосов - 41, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 8

Отталкивание шара от стенок

20.01.2014, 14:35. Показов 7949. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день)
Нужно написать программу, в которой шар отталкивается от стенок и меняет цвет после каждого удара.
Объясните, пожалуйста, как записать в код элементы, которые я буду использовать.
И какой инструмент будет являться квадратом, внутри которого будет летать шарик?
Как дать понять шару начало координат (место, с которого он стартует)?
Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2014, 14:35
Ответы с готовыми решениями:

Отталкивание шара от стенок - C++ Builder
помогите разобраться с кодом, сам пишу на С# а здесь С ++, не могу понять что к чему, можете комментарии подписать что как делает и для...

Отталкивание квадрата от стенок окна
Как реализовать отталкивание квадрата от стенок окна в builder? Видел пример с шариком, вроде разобрался, а вот с квадратом не понятно....

Отталкивание шара от стенок круга
Здравствуйте. Нужно написать так чтобы шар двигался внутри круга и отталкивался от его стенок. Сделал так чтобы шар отталкивался...

16
Заблокирован
20.01.2014, 14:41
Цитата Сообщение от Mrs_Crabs Посмотреть сообщение
И какой инструмент будет являться квадратом, внутри которого будет летать шарик?
наверное форма.

Цитата Сообщение от Mrs_Crabs Посмотреть сообщение
Нужно написать программу, в которой шар отталкивается от стенок и меняет цвет после каждого удара.
траектория движения какая?

Цитата Сообщение от Mrs_Crabs Посмотреть сообщение
Как дать понять шару начало координат (место, с которого он стартует)?
для начала реализуйте плоский случай (круг). Начало координат - то место, в котором вы программно нарисовали шар.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
20.01.2014, 14:49
Mrs_Crabs, в какой среде программирования вы пишите? Visual Studio, Borland?..
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 8
20.01.2014, 14:53  [ТС]
Добавлено через 1 минуту
Цитата Сообщение от Ev_Hyper Посмотреть сообщение

траектория движения какая?

Траектория?
По прямой, какая ещё может быть)
Мне надо в 2D, то есть, отталкивание круга тогда.

Добавлено через 37 секунд
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Mrs_Crabs, в какой среде программирования вы пишите? Visual Studio, Borland?..
Borland C++ 6.
0
Заблокирован
20.01.2014, 14:55
можно таймер использовать, через заданное число секунд рисуйте на новых координатах. Получится как бы перемещение круга.
Как только произойдет касание границы меняйте цвет.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 8
20.01.2014, 14:59  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
можно таймер использовать, через заданное число секунд рисуйте на новых координатах. Получится как бы перемещение круга.
Как только произойдет касание границы меняйте цвет.
Что будет играть роль граней?
Как понять, какие координаты будет иметь грань (мне же именно с координатами грани нужно сравнивать положение шарика и его дальнейшая судьба)?
0
38 / 38 / 22
Регистрация: 16.04.2013
Сообщений: 327
Записей в блоге: 1
20.01.2014, 15:04
Цитата Сообщение от Mrs_Crabs Посмотреть сообщение
Добрый день)
Нужно написать программу, в которой шар отталкивается от стенок и меняет цвет после каждого удара.
Объясните, пожалуйста, как записать в код элементы, которые я буду использовать.
И какой инструмент будет являться квадратом, внутри которого будет летать шарик?
Как дать понять шару начало координат (место, с которого он стартует)?
Заранее спасибо!

Не по теме:

где вопрос? тебе сказать как начать писать код? подыми попу и начни лопатить интернет

1
Заблокирован
20.01.2014, 15:05
Цитата Сообщение от Mrs_Crabs Посмотреть сообщение
Что будет играть роль граней?
форма, то, на чем вы отображаете.

К примеру:
size().height()-50
где 50 - радиус шара
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
20.01.2014, 15:08
Mrs_Crabs, можете здесь посмотреть ради хохмы: Восход солнца на море
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 8
20.01.2014, 15:17  [ТС]
Цитата Сообщение от Miwa123 Посмотреть сообщение

Не по теме:

где вопрос? тебе сказать как начать писать код? подыми попу и начни лопатить интернет

Я хочу не просто скачать уже работающий, я хочу разобраться и сделать самой.
А в том, что я находила, мне тяжело понять принцип.
Если не сложно, объясните, с чего начать.

Добавлено через 7 минут
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Mrs_Crabs, можете здесь посмотреть ради хохмы: Восход солнца на море
C++
1
2
3
void __fastcall TForm2::FormCreate(TObject *Sender)
{
bitmap = new Graphics::TBitmap;
Разжуйте это, пожалуйста.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
20.01.2014, 15:27
FormCreate - это конструктор формы. Все, что в нем написано, будет выполнено при создании формы.

bitmap - картинка (объявлена вот так: Graphics::TBitmap *bitmap;), объект в который рисуется изображение, строится в нем. А сам этот объект потом целиком рисуется где нужно.
bitmap = new Graphics::TBitmap; - создание нового экземпляра такой картинки.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,885
Записей в блоге: 12
20.01.2014, 15:52
Цитата Сообщение от SatanaXIII Посмотреть сообщение
FormCreate - это конструктор формы
Это событие, которое сработает сразу после того, как отработал конструктор формы, если что... Не надо вводить новичков в заблуждение.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
20.01.2014, 16:02
Ну да, да. Конструктор в данном случае TForm2. Может сразу тогда и про различия Graphics::TBitmap и Windows::TBitmap рассказать? )
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 8
20.01.2014, 17:14  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
форма, то, на чем вы отображаете.

К примеру:
size().height()-50
где 50 - радиус шара
Как форму ограничить?
Она же безмерная.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.01.2014, 17:33
Цитата Сообщение от Mrs_Crabs Посмотреть сообщение
Если не сложно, объясните, с чего начать.
Mrs_Crabs, общий принцип такой: инициализируете глобальную переменную - point, в этом случае используете point.x point.y, или две: dx, dy с начальными значениями, скажем, 4 и 6... - это будут приращения координат. По таймеру рисунок с шариком перемещаете в пределах поля формы (по горизонтали - от 0 до Form->ClientWidth, по вертикали - 0 - Form->ClientHeight). Когда при очередном наращивании значений по таймеру получится значение, выходящее за пределы (тут придется рассчитывать - позиция левого верхнего угла картинки плюс его ширина-высота) - знак приращения по соотв. координате нужно проинвертировать (был с плюсом - станет с минусом) - это и будет отражение от стенок.

Добавлено через 5 минут
Можно в качестве круга использовать Shape - так легче будет менять ему цвет (Brush->Color).
0
☆ Форумчанин(FSC)☆
 Аватар для 2ima
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10
20.01.2014, 22:14
типа так
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit5.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "acPNG"
#pragma resource "*.dfm"
TForm5 *Form5;
int iSpeed=10;
//---------------------------------------------------------------------------
__fastcall TForm5::TForm5(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm5::Timer1Timer(TObject *Sender)
{
TRect null;
if(IntersectRect(null, Image1->BoundsRect, Panel1->BoundsRect)){iSpeed=0;}
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm5::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
 
{
TRect null;
if(Key=='W')
{
    Image1->Top-=iSpeed;
    if(iSpeed==0)
    {
        iSpeed=10;
    }
}
if(Key=='S')
{
    Image1->Top+=iSpeed;
    if(iSpeed==0)
    {
        iSpeed=10;
    }
}
if(Key=='A')
{
    Image1->Left-=iSpeed;
        if(iSpeed==0)
    {
        iSpeed=10;
    }
}
if(Key=='D')
{
    Image1->Left+=iSpeed;
}
}
//---------------------------------------------------------------------------
Добавлено через 16 секунд
С Image))

Добавлено через 59 секунд
Думаю разберетесь)
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
20.01.2014, 23:01
См. 6-й пост в этой теме: Полет компоненты TImage и отталкивание от границ экрана
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2014, 23:01
Помогаю со студенческими работами здесь

Отражение шара от стенок коробки
Я начал пытаться делать отражение шара от стенок коробки, но не особо получается. Очень нужна помощь. Компилятор не ругается, но шар просто...

Чему равна напряженность поля у поверхности шара; на расстоянии 2 м от центра шара; внутри шара?
Электрический заряд 9 нКл равномерно распределен по поверхности шара радиусом 1 м. Чему равна напряженность поля 1) у поверхности шара; ...

В урне лежат a белых и b черных шара. Наугад вынимают два шара.
помогите пожалуйста с решением(( В урне лежат a белых и b черных шара. Наугад вынимают два шара. Используя теоремы о вероятности...

С клавиатуры вводится радиус шара. Вычислить объем шара и площадь поверхности
помогите плиз, кто чем может.. очень надо сделать 2 проги на Visual Basic. 1. С клавиатуры вводится радиус шара. Вычислить объем шара и...

Определить потенциал в центре шара и энергию W электрического поля шара
Заряд q равномерно распределен по объему шара радиусом R. Определить потенциал в центре шара и энергию W электрического поля шара.


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru