Невозможно изменить координаты эллипса после вращения - PullRequest
2 голосов
/ 17 мая 2011

Я нарисовал Эллипс.У меня есть 8 дескрипторов.

Дескрипторами являются TopLeft, MidTop, TopRight, MidLeft, MidRight, BottomLeft, MidBottom, BottomRight.

Всякий раз, когда пользователь наводит курсор на любой из этих маркеров, отображается курсор.Для отображения курсора я сослался на эллипс формы MS-WORD.

Моя проблема возникает, когда я поворачиваюсь или делаю зеркальное отображение эллипса.Я не могу изменить координаты, поэтому курсоры не отображаются должным образом.

Пожалуйста, помогите.

Примечание: Пожалуйста, откройте MS-WoRD.Перейти к «ВСТАВИТЬ» Выберите «ФОРМЫ» В этом выберите форму «Эллипс».Нарисуй это.Если вы нажмете на нее, вы увидите 8 точек, окружающих форму эллипса.Это так называемые ручки.Если вы наведите курсор мыши на любую из ручек, проверьте отображение курсора.Курсор отображается в зависимости от ручки.Мне нужно реализовать ту же функциональность, что и в MS-WORD в VC ++..

РЕДАКТИРОВАТЬ - Добавлена ​​информация ниже из комментариев:

Проблема в перестановке координат после поворота.Если я слегка поверну эллипс вправо (попробуйте MS-WoRD).Какую точку я считаю верхней-левой?Я попытался переставить с приведенным выше кодом.Но это не сработало во многих случаях.Получение верхней левой точки после вращения эллипса - главная большая проблема, с которой я сейчас сталкиваюсь.

struct SortingFunction 
{ 
    bool operator()(const CRect& a, const CRect& b) 
    { 
        if (a.left == b.left) 
            return a.top <= b.top; else return a.left < b.left; 
    } 
}

1 Ответ

0 голосов
/ 17 мая 2011

Ручки также являются точками, все, что вам нужно сделать, это определить величину вращения эллипса и повернуть ручки с этим вращением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...