![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| student0511 |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
Приветствую ALL!
Пишу программку эмуляции движения шариков в 2D в окне Windows, понадобилось передать в одну из функций элементы массива структур по ссылке. Всё бы ничего, но обращение к полям структуры не выполняется, т.к. выдаёт ошибку expession cannot bу evaluated, т.е. все данные потерянные, так ли это понимать? Вот отрывок кодв: Описание структуры:
Прототипы некоторых функций:
А вот обработка сообщения WM_PAINT:
Описание функции CrossBS
А вот и сама проблема - это функция void Entail(HDC, Ball&, Ball&)
Вообщем, чтобы было более понятно, как работает кодик: за основу я беру окружность находящуюся в правом верхнем углу, далее с пом. симметрии вычисляю центр этой окружности, т.е. фактически перемещаю второй "шар" в данный угол, если он расположён в любом другом. А потом вычисляю координаты точек пересечения прямой с первой окружностью и воображаемым "кругом", затем, зная их координаты, легко вычислить модули проекции вектора, берущего своё начало из точки пересечения прямой с первой окружностью, заканчиваясь в точке пересечения со второй. А дальше совсем просто: перемещаю центр второй "реальной" окружности по модулям соответствующих проекций в зависимости от расположения. Функция void coordEBS(Ball, Ball, const int, const int, double, POINT*&, POINT*&);
Заведомо благодарен! Это сообщение отредактировал(а) student0511 - 5.8.2007, 08:31 |
||||||||||||
|
|||||||||||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 15 Всего: 88 |
Так, глубоко не ходил. Чисто визуально. В ф-ции EntailBS в строке 20 и в строке 31 в if`ах лишние закрывающие скобки... Проверь пока это, дальше будет видно.
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| student0511 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
Эт опечатка. В коде всё нормул, а ошибка вылизает уже после запуска программки, указывая на 16 строку ф-ции EntailBS и другие аналог. строки. В окне Debug'a напротив всех полей при этом появляется надпись error: expession cannot bу evaluated, а что за ошибка такая? В каких случаях вылизает?
|
|||
|
||||
| student0511 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
Я отредактировал первое сообщение, а именно код, там некоторые явные проблемы с логикой были
|
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| student0511 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.3.2006 Репутация: нет Всего: нет |
На что указывает ошибка понятно даже без док, из перевода
Эт что? Шутки компилятора (MSV C++ 6.0). Библиотеки
|
||||||
|
|||||||
| ksili |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
int делишь на int - получается int. попробуй так:
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |