旋转后无法重新排列椭圆的坐标

时间:2011-05-17 06:31:41

标签: c++ visual-c++

我画了一个椭圆。我有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; 
    } 
}

1 个答案:

答案 0 :(得分:0)

手柄也是点,您需要做的就是确定椭圆所经过的旋转量,并使用该旋转旋转手柄。