SmirnoffYM/AI-simulator — Issue #1: Drawing robots
Author: SmirnoffYM
Created: 2012-03-09 22:39:22+00:00
State: open

Hello everyone, буду говорити українською.
Коротше, суть в тому що в Qt походу є проблема з малювання еліпсу у випадку, коли еліпс хоча б частково "вилазить" у негативні області. Наприклад, маємо точку (10, 10) і хочемо намалювати еліпс з центром в цій точці і радіусом 20. В результаті еліпс не намалюється, а QGraphicsScene розтягнеться до вражаючих розмірів. Можете перевірити це, вставивши наступний код в конструктор ModellingSystem в цикл, де створюються роботи

robot->setColor(QColor(0, 0, 255));
robot->setOrientation(359);
robot->setCoords(10, 10);
robot->setSize(40);

При цьому, якщо змінити розмір (тобто діаметр) з 40 на, скажімо, 10, то "робот" буде нормально промальовуватися. Аналогічно, все буде ок якщо змінити координати центру на такі, при яких робот не має вилазити за край карти.
Що можна зробити:
Варіант 1: тупо не промальовувати ботів, які вилазять за карту.
Варіант 2(хардкорний): написати свою функцію, яка малює і зафарбовує коло. Це буде працювати, так як лінії у "від'ємних координатах" промальовуються нормально.