lni
24th June 2010, 16:13
The following code produces very different result, the only different is the precision (with "f" turn to float), can someone explain please? Many thanks!
#include <QPolygonF>
#include <QDebug>
int main()
{
QPolygonF polygon1;
polygon1 << QPointF(-49.3670886075949369, 1930.1848049281315980 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-13.1139240506329173, 2084.1889117043124315 );
QPolygonF polygon2;
polygon2 << QPointF(-41.6708860759493689, 1940.4517453798769111 )
<< QPointF(-52.2025316455696142, 431.2114989733059929 )
<< QPointF(-3.3924050632911431, 1509.2402464065710319 )
<< QPointF(-26.8190801175864770, 1506.3079775881415117 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-41.1968964968032125, 1504.5083358315471287 );
qDebug() << "polygon1 - polygon2 = " << polygon1.subtracted( polygon2 );
////////////////////
QPolygonF polygon3;
polygon3 << QPointF(-49.3670886075949369, 1930.1848049281315980 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-13.1139240506329173, 2084.1889117043124315 );
QPolygonF polygon4;
polygon4 << QPointF(-41.6708860759493689f, 1940.4517453798769111f )
<< QPointF(-52.2025316455696142f, 431.2114989733059929f )
<< QPointF(-3.3924050632911431f, 1509.2402464065710319f )
<< QPointF(-26.8190801175864770f, 1506.3079775881415117f )
<< QPointF(-34.7848101265822862f, 1170.4312114989734255f )
<< QPointF(-41.1968964968032125f, 1504.5083358315471287f );
qDebug() << "polygon3 - polygon4 = " << polygon3.subtracted( polygon4 );
////////////////////
QPolygonF polygon5;
polygon5 << QPointF(-49.3670886075949369f, 1930.1848049281315980 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-13.1139240506329173, 2084.1889117043124315 );
QPolygonF polygon6;
polygon6 << QPointF(-41.6708860759493689, 1940.4517453798769111 )
<< QPointF(-52.2025316455696142, 431.2114989733059929 )
<< QPointF(-3.3924050632911431, 1509.2402464065710319 )
<< QPointF(-26.8190801175864770, 1506.3079775881415117 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-41.1968964968032125, 1504.5083358315471287 );
qDebug() << "polygon5 - polygon6 = " << polygon5.subtracted( polygon6 );
}
Output is:
polygon1 - polygon2 = QPolygonF()
polygon3 - polygon4 = QPolygonF(QPointF(-49.3671, 1930.18)QPointF(-43.7755, 1638.85)QPointF(-41.6709, 1940.45)QPointF(-41.1969, 1504.51)QPointF(-37.0334, 1287.59)QPointF(-34.7848, 1170.43)QPointF(-27.884, 1461.4)QPointF(-26.8191, 1506.31)QPointF(-26.8191, 1506.31)QPointF(-13.1139, 2084.19)QPointF(-49.3671, 1930.18))
polygon5 - polygon6 = QPolygonF(QPointF(-43.7755, 1638.85)QPointF(-41.1969, 1504.51)QPointF(-41.6709, 1940.45)QPointF(-43.7755, 1638.85))
#include <QPolygonF>
#include <QDebug>
int main()
{
QPolygonF polygon1;
polygon1 << QPointF(-49.3670886075949369, 1930.1848049281315980 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-13.1139240506329173, 2084.1889117043124315 );
QPolygonF polygon2;
polygon2 << QPointF(-41.6708860759493689, 1940.4517453798769111 )
<< QPointF(-52.2025316455696142, 431.2114989733059929 )
<< QPointF(-3.3924050632911431, 1509.2402464065710319 )
<< QPointF(-26.8190801175864770, 1506.3079775881415117 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-41.1968964968032125, 1504.5083358315471287 );
qDebug() << "polygon1 - polygon2 = " << polygon1.subtracted( polygon2 );
////////////////////
QPolygonF polygon3;
polygon3 << QPointF(-49.3670886075949369, 1930.1848049281315980 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-13.1139240506329173, 2084.1889117043124315 );
QPolygonF polygon4;
polygon4 << QPointF(-41.6708860759493689f, 1940.4517453798769111f )
<< QPointF(-52.2025316455696142f, 431.2114989733059929f )
<< QPointF(-3.3924050632911431f, 1509.2402464065710319f )
<< QPointF(-26.8190801175864770f, 1506.3079775881415117f )
<< QPointF(-34.7848101265822862f, 1170.4312114989734255f )
<< QPointF(-41.1968964968032125f, 1504.5083358315471287f );
qDebug() << "polygon3 - polygon4 = " << polygon3.subtracted( polygon4 );
////////////////////
QPolygonF polygon5;
polygon5 << QPointF(-49.3670886075949369f, 1930.1848049281315980 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-13.1139240506329173, 2084.1889117043124315 );
QPolygonF polygon6;
polygon6 << QPointF(-41.6708860759493689, 1940.4517453798769111 )
<< QPointF(-52.2025316455696142, 431.2114989733059929 )
<< QPointF(-3.3924050632911431, 1509.2402464065710319 )
<< QPointF(-26.8190801175864770, 1506.3079775881415117 )
<< QPointF(-34.7848101265822862, 1170.4312114989734255 )
<< QPointF(-41.1968964968032125, 1504.5083358315471287 );
qDebug() << "polygon5 - polygon6 = " << polygon5.subtracted( polygon6 );
}
Output is:
polygon1 - polygon2 = QPolygonF()
polygon3 - polygon4 = QPolygonF(QPointF(-49.3671, 1930.18)QPointF(-43.7755, 1638.85)QPointF(-41.6709, 1940.45)QPointF(-41.1969, 1504.51)QPointF(-37.0334, 1287.59)QPointF(-34.7848, 1170.43)QPointF(-27.884, 1461.4)QPointF(-26.8191, 1506.31)QPointF(-26.8191, 1506.31)QPointF(-13.1139, 2084.19)QPointF(-49.3671, 1930.18))
polygon5 - polygon6 = QPolygonF(QPointF(-43.7755, 1638.85)QPointF(-41.1969, 1504.51)QPointF(-41.6709, 1940.45)QPointF(-43.7755, 1638.85))