我画了一个椭圆。我有8把手。
手柄有TopLeft,MidTop,TopRight,MidLeft,MidRight,BottomLeft,MidBottom,BottomRight。
每当用户在任何这些句柄上悬停时,都会显示光标。为了显示光标,我引用了MS-WORD形状椭圆。
当我唠叨或制作椭圆的镜像时,我的问题就到了。我无法重新排列坐标,因此光标显示不正确。
请帮助。
注意:请打开MS-WoRD。 转到“插入” 选择“SHAPPES” 在那个选择“椭圆”形状。 画出来。 如果单击它,您将看到椭圆形周围的8个点。这些被称为句柄。如果将鼠标悬停在任何手柄上,请检查光标显示。光标显示取决于手柄。 我需要实现与VC ++中MS-WORD相同的功能。
编辑 - 在评论中添加了以下信息:
问题在于旋转后重新排列坐标。如果我将椭圆略向右侧(在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;
}
}
答案 0 :(得分:0)
手柄也是点,您需要做的就是确定椭圆所经过的旋转量,并使用该旋转旋转手柄。