OK, I've got a "workaround" that works for me at the moment.
In GeoPainter.cpp, line 330 the degreeResolution is is determined as:
// Optimizing the precision by determining the size which the
// ellipse covers on the screen:
const qreal degreeResolution = d->m_viewport->angularResolution() *
RAD2DEG;
Then the precision is calculated:
// To create a circle shape even for very small precision we require
uneven numbers:
const int precision = qMin<qreal>( width / degreeResolution / 8 + 1, 81 );
The precision affects the number of points that are drawn for the ellipse.
More points, smoother ellipse.
I modified the angularResolutionterm to be 1/3 the size:
const qreal degreeResolution = d->m_viewport->angularResolution() *
RAD2DEG * 0.333;
This yields a greater precision which draws geoProjected ellipses as they were
in the 4.11 branch.
While this works for me, I don't think this is the correct fix. It would appear
that the d->m_viewport->angularResolution() is the value that has changed in
recent branches.
I haven't looked into that.
Josh
On 07/11/2014 05:06 PM, Josh Knox wrote:
> To narrow down the issue, I tried building against a few previous versions of
> Marble sources I had checked out locally.
>
> The ellipses look OK in branches 4.10 (libmarblewidget.so.15.0) and 4.11
> (libmarblewidget.so.0.16.5). The issue appears in branch 4.12
> (libmarblewidget.so.17.0) and is in master.
>
> I can't see any difference in GeoPainter::drawEllipse between those versions,
> so the issue must be elsewhere.
>
> I should be able to look at this more next week once I clear my plate of
> other stuff.
>
> Have a good weekend!
>
> Josh
>
>
> On 07/10/2014 01:25 PM, Josh Knox wrote:
>> I just built against master (libmarblewidget.so.0.18.3). Same issue exists
>> for geoProjected ellipses. :(
>>
>> For reference, geoProjected ellipses draw much better with
>> libmarblewidget.so.0.15.0
>>
>> Josh
>>
>> On 07/10/2014 07:03 AM, Josh wrote:
>>> Hi Dennis,
>>>
>>> The example, as is, does not produce this issue. If the ellipse is drawn
>>> with isGeoProjected=true, then the issue is apparent.
>>>
>>> Attached code only changes the call to drawEllipse, to draw a geoprojected
>>> circle at the example's home location:
>>>
>>> painter->drawEllipse(home, (60.0/1243.76), (60.0/1853.17), true);
>>>
>>> Image shows the issue. Zooming in and out should show the problem.
>>>
>>> If you don't see it in master, I'll try building against that.
>>>
>>> Thanks for looking!
>>>
>>> Josh
>>>
>>> On 07/05/2014 03:49 AM, Dennis Nienhüser wrote:
>>>> Hi Josh,
>>>>
>>>> I wasn't able to reproduce that problem in master. Can you provide a
>>>> minimal example in the style of [0] that results in the rendering
>>>> problem on your system?
>>>>
>>>> Regards,
>>>> Dennis
>>>>
>>>> [0]
>>>> http://quickgit.kde.org/?p=marble.git&a=blob&h=a1aa719&f=examples%2Fcpp%2Fgeopainter%2Fmain.cpp
>>>>
>>>> Am 30.06.2014 15:29, schrieb Josh Knox:
>>>>> Hi Torsten,
>>>>>
>>>>> Here's a couple screen shots that shows it clearly, side-by-side.
>>>>>
>>>>> Notice the dashed range rings and the small center red circle. These are
>>>>> all drawn with GeoPainter::drawEllipse. They show the issue I'm seeing.
>>>>>
>>>>> Then compare with the light blue and light red circles, which are drawn
>>>>> from predefined point sets using GeoPainter::drawPolygon. These maintian
>>>>> their nice circular shape.
>>>>>
>>>>> All my uses of drawEllipse are affected like this, so I guess that's the
>>>>> basic test case.
>>>>>
>>>>> Does this demonstrate the issue clear enough?
>>>>>
>>>>> Thanks for looking at this,
>>>>>
>>>>> Josh
>>>>>
>>>>>
>>>>>
>>>>> On 06/27/2014 06:05 PM, Torsten Rahn wrote:
>>>>>> Interesting, I haven't noticed this yet - although this might very well
>>>>>> be the case.
>>>>>> Could you provide a test case or maybe a screenshot which shows this
>>>>>> change clearly? :)
>>>>>>
>>>>>> Best Regards,
>>>>>> Torsten
>>>>>>
>>>>>> -----Original-Nachricht-----
>>>>>> Betreff: [Marble-devel] Ellipses look like polygons
>>>>>> Datum: Fri, 27 Jun 2014 21:51:41 +0200
>>>>>> Von: Josh Knox <[email protected]>
>>>>>> An: "[email protected]" <[email protected]>
>>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> I've been developing an application using Marble 1.5, that I built from
>>>>>> source on Ubuntu 12.04.
>>>>>> I recently started migrating to Ubuntu 14.04 which provides packages for
>>>>>> Marble 1.8.
>>>>>>
>>>>>> I use circles to mark various track points and areas, using
>>>>>> GeoPainter::drawEllipse.
>>>>>>
>>>>>> With Marble 1.5, this worked quite well visually as the ellipses and
>>>>>> circles were drawn as ellipses and circles, and were only reduced to
>>>>>> small polygons and lines as the view was zoomed out beyond
>>>>>> a scale of 1:100000.
>>>>>>
>>>>>> With the newer version of Marble, anything drawn with drawEllipse is
>>>>>> very polygonal, reducing to squares and lines until I zoom in much
>>>>>> closer. Even then, circles still have very noticeable flat edges,
>>>>>> especially near 90 and 270 degrees. Strangely, the upper and lower
>>>>>> parts of the are much more "circular".
>>>>>>
>>>>>> Is there some difference between 1.5 and 1.8, when
>>>>>> drawingellipses/circles that produces this visual
>>>>>> difference; some optimization/approximation perhaps?
>>>>>>
>>>>>> I'd like to have my circles look like circles again. Any
>>>>>> ideas/suggestions for improving this?
>>>>>>
>>>>>> Note that I have some irregular but largely circular shapes that I draw
>>>>>> as polygons from a set of p redefined points. These retain their
>>>>>> roundness at all zoom levels. Maybe I could just draw all my
>>>>>> various circles as predefined polygons and keep those cached for use as
>>>>>> needed. Would really prefer
>>>>>> that drawEllipse worked as it used to though.
>>>>>>
>>>>>> Thanks for any suggestions.
>>>>>>
>>>>>> Josh
>>>>>> ____________
> _______________________________________________
> Marble-devel mailing list
> [email protected]
> https://mail.kde.org/mailman/listinfo/marble-devel
>
>
_______________________________________________
Marble-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/marble-devel