重点在于该地区吗?

时间:2011-07-21 17:23:42

标签: qt

我在paintEvent

中执行此操作
painter.drawPie(rect, angle*16, 45*16);

但在绘制饼图之前,我想知道当前鼠标位置是否位于饼图区域之下。

鼠标跟踪功能已启用。我可以获得mouseEvents。那边没问题。但是,如果要知道这个点是否存在于馅饼中,那么数学是什么?

2 个答案:

答案 0 :(得分:0)

我没试过这个,但你可以尝试将两个QPainterPaths(一个三角形和一个圆圈)相交以获得你的饼段的QPainterPath,然后以鼠标位置为参数调用QPainterPath :: contains(QPointF&)

现在我写这个,检查可能很容易实现:如果点在圆圈内和三角形内部,那么它就在馅饼内部。这两个子测试都很容易实现。

答案 1 :(得分:0)

令人遗憾的是,QPainterPath没有addPie()函数。但是,您可以使用Qt的QPainter :: drawPie()实现作为参考:

http://qt.gitorious.org/qt/qt/blobs/4.7/src/gui/painting/qpainter.cpp#line4439

基本上你可以像创建QPainterPath那样创建QPainterPath并在其上调用contains()。