mirror of
https://github.com/mapmapteam/mapmap.git
synced 2026-06-16 12:33:19 +02:00
Clip center control point inside ellipse using QTransform.
This commit is contained in:
@@ -463,8 +463,21 @@ void Ellipse::setVertex(int i, const QPointF& v)
|
||||
}
|
||||
|
||||
// Center control point (make sure it stays inside!).
|
||||
else {
|
||||
else
|
||||
{
|
||||
if (includesPoint(v))
|
||||
Shape::setVertex(i, v);
|
||||
|
||||
else
|
||||
{
|
||||
// Map point as vector on a unit circle.
|
||||
QVector2D vector(toUnitCircle().map(v));
|
||||
|
||||
// Normalize it.
|
||||
vector.normalize();
|
||||
|
||||
// Remap it to ellipse.
|
||||
Shape::setVertex(4, fromUnitCircle().map(vector.toPointF()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user