Little fixes in VEllipticalArc
--HG-- branch : feature
This commit is contained in:
parent
bea2a32e85
commit
22a3e9d1a0
|
@ -283,7 +283,7 @@ QPointF VArc::CutArc(const qreal &length, VArc &arc1, VArc &arc2) const
|
||||||
len = length;
|
len = length;
|
||||||
}
|
}
|
||||||
|
|
||||||
qreal n = (len*180)/(M_PI*d->radius);
|
qreal n = (len*180)/(M_PI*d->radius); // n - is angle in degrees
|
||||||
QLineF line(GetCenter().toQPointF(), GetP1());
|
QLineF line(GetCenter().toQPointF(), GetP1());
|
||||||
line.setAngle(line.angle()+n);
|
line.setAngle(line.angle()+n);
|
||||||
|
|
||||||
|
|
|
@ -356,13 +356,12 @@ void VEllipticalArc::FindF2(qreal length)
|
||||||
qreal gap = 180;
|
qreal gap = 180;
|
||||||
if (length < 0)
|
if (length < 0)
|
||||||
{
|
{
|
||||||
//length = qAbs(length);
|
|
||||||
d->isFlipped = true;
|
d->isFlipped = true;
|
||||||
gap = -gap;
|
gap = -gap;
|
||||||
}
|
}
|
||||||
while (length > MaxLength())
|
while (length > MaxLength())
|
||||||
{
|
{
|
||||||
//length = length - MaxLength();
|
length = length - MaxLength();
|
||||||
}
|
}
|
||||||
|
|
||||||
// We need to calculate the second angle
|
// We need to calculate the second angle
|
||||||
|
@ -386,6 +385,7 @@ void VEllipticalArc::FindF2(qreal length)
|
||||||
{ // we selected too little end angle
|
{ // we selected too little end angle
|
||||||
endAngle = endAngle + qAbs(gap);
|
endAngle = endAngle + qAbs(gap);
|
||||||
}
|
}
|
||||||
|
// we need to set d->f2, because we use it when we calculate GetLength
|
||||||
d->f2 = endAngle;
|
d->f2 = endAngle;
|
||||||
lenBez = GetLength();
|
lenBez = GetLength();
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,9 +197,12 @@ void TST_VEllipticalArc::TestData()
|
||||||
|
|
||||||
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 100, 50") << 100.0 << 50.0 << 90.0 << 135.0 << 0.0;
|
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 100, 50") << 100.0 << 50.0 << 90.0 << 135.0 << 0.0;
|
||||||
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 150, 400") << 150.0 << 400.0 << 90.0 << 135.0 << 0.0;
|
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 150, 400") << 150.0 << 400.0 << 90.0 << 135.0 << 0.0;
|
||||||
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 1500, 800") << 1500.0 << 800.0 << 90.0 << 135.0 << 0.0;
|
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 1500, 800")
|
||||||
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 50000, 5000") << 50000.0 << 5000.0 << 90.0 << 135.0 << 0.0;
|
<< 1500.0 << 800.0 << 90.0 << 135.0 << 0.0;
|
||||||
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 90000, 50000") << 90000.0 << 50000.0 << 90.0 << 135.0 << 0.0;
|
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 50000, 5000")
|
||||||
|
<< 50000.0 << 5000.0 << 90.0 << 135.0 << 0.0;
|
||||||
|
QTest::newRow("Arc start 90 degree, angle 45 degree, radiuses 90000, 50000")
|
||||||
|
<< 90000.0 << 50000.0 << 90.0 << 135.0 << 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user