Bug 296749 - Boolean operations always return polygons
Summary: Boolean operations always return polygons
Status: CONFIRMED
Alias: None
Product: karbon
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: Jan Hambrecht
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-25 15:43 UTC by acidrums4
Modified: 2021-03-10 12:27 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Path operations, differente betwen Karbon (left) and Inkscape (right). (42.84 KB, image/png)
2012-03-25 15:44 UTC, acidrums4
Details

Note You need to log in before you can comment on or make changes to this bug.
Description acidrums4 2012-03-25 15:43:05 UTC
User-Agent:       Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34
Build Identifier: 

Just like that. Say you have a square and a circle, place them one above of other and convert both of them to paths. Do a union between those paths and you will see the round shape is not composed by two, three or four curve nodes but a lot of regular nodes. You don't get a rounded shape, you get a polygon with million of faces.

I did the same exercise between Karbon and Inkscape to show the difference: at the left is the result that Karbon returns (take a close look at the bottom, you will see that bunch of nodes I'm talking about) and the right is the result that Inkscape gives, where the rounded shape is built only by three curve nodes.

Moreover, sometimes both paths dissapear. I don't know why because I can't found a regular situation when that happens. But in my example, if you do an intersection you get the top portion of the circle built by only three nodes. In that case, that's the expected result.

I've talked about it before on KDE forums, they took me like crazy but I realize this is a serious problem. I don't know if it is really a problem that is related to QtSVG but I don't even know how I can report that bug.

Reproducible: Always

Steps to Reproduce:
1. Draw/paste two paths, one of them with curves.
2. Place one of them above other.
3. Do a boolean operation between them (Path->Exclude paths, Path->Intersect paths, Path->Substract paths, Path->Unite paths).
Actual Results:  
The curve part of the path is built by a bunch of regular nodes, that means it is actually a polygon with many faces, not a curve.

Expected Results:  
The curve part of the path should be made of a few curve nodes, the minimum amount of them required to draw the correct shape.
Comment 1 acidrums4 2012-03-25 15:44:43 UTC
Created attachment 69888 [details]
Path operations, differente betwen Karbon (left) and Inkscape (right).

Path operations, differente betwen Karbon (left) and Inkscape (right). Look close at the rounded section.
Comment 2 Jan Hambrecht 2012-03-29 21:51:40 UTC
Seems like a regression in qt: https://bugreports.qt-project.org/browse/QTBUG-16983
Comment 3 acidrums4 2012-03-31 00:43:22 UTC
(In reply to comment #2)
> Seems like a regression in qt:
> https://bugreports.qt-project.org/browse/QTBUG-16983

It's weird, I had the same situation with Qt-4.6.3. Furthermore, boolean operations were more buggy and strange at that time... And this happen not only when uniting two paths.
Comment 4 Justin Zobel 2021-03-09 03:44:37 UTC
Thank you for the bug report.

As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists.

If this bug is no longer persisting or relevant please change the status to resolved.
Comment 5 acidrums4 2021-03-10 12:27:53 UTC
Not only it is still not working but doing any boolean operation does make the involved shapes to disappear.