English 中文(简体)
QPolygonF/QLine F 交叉
原标题:QPolygonF/QLineF intersection
  • 时间:2012-01-12 14:57:13
  •  标签:
  • qt

rel=“nofollow”>QPolygonF有办法与其他QPolygon公司结盟、交叉和分离 但我需要与QLineF进行交叉测试。 这似乎从APIC中消失。

我可以这样说:

if (polygon .containsPoint (line .p1 ()) != polygon .containsPoint (line .p2 ())
    return true;

QPointF a = polygon .back ();
foreach (QPointF b, polygon)
{
    if (QLineF :: BoundedIntersection == line .intersect (QPointF (a, b))
       return true;
    a = b;
}

return false;

在上述情况下,可能有一些数字或边错,因此我不是这样。

Is there a provided method somewhere in the Qt API that I can t see?

最佳回答

不幸的是,答案是“否”。

问题回答

执行QPolygonF:摘录如下:

QPainterPath subject; subject.addPolygon(*this);
QPainterPath clip; clip.addPolygon(r);

return subject.intersected(clip).toFillPolygon();

i.e. QPolygonF uses QPainterPath methods to do the intersections. So you could do:

  • make a QPainterPath from the lines of the polygon
  • make a QPainterPath from your line
  • intersect them
  • check the result with isEmpty()
  • get the intersection point with boundingRect()

I DID NOT TRY THIS! 你们必须检查此事。 我不敢肯定,在数字稳定和业绩方面,这比你的解决办法好,因此,你应写一些测试。





相关问题
Qt: Do events get processed in order?

If I had a class A, where one of its functions does: void A::func() { emit first_signal(); emit second_signal(); } Assuming that a class B has 2 slots, one connected to first_signal, and the ...

How to determine how much free space on a drive in Qt?

I m using Qt and want a platform-independent way of getting the available free disk space. I know in Linux I can use statfs and in Windows I can use GetDiskFreeSpaceEx(). I know boost has a way, ...

Drag & drop with .ui files

I m having big troubles with drag & drop. I ve created a new Qt Designer Form Class in which I have one QListWidget and one QWidget. Now I want to enable dragging & dropping between these two ...

Link errors on Snow Leopard

I creating a small desktop application using Qt and Poco on Mac OS X Snow Leopard. Qt works fine, but once I started linking with Poco I get the following warning: ld: warning: in /Developer/SDKs/...

Showing two windows in Qt4

My friend and I have each created parts of a GUI using Qt 4. They both work independently and I am trying to integrate his form with the my main window. As of now this is the code I am using to try ...

Qt equivalent of .NET data binding?

Is there an equivalent of .NET s data binding in Qt? I want to populate some combo boxes and other widgets with QStrings that refer to specific entities in my database. However, it would be cleaner ...

热门标签