From d9f21c90bd61d15fd78a8df9115bf2e9ededbd1b Mon Sep 17 00:00:00 2001 From: Lennard Date: Sun, 23 Sep 2012 20:56:39 +0200 Subject: [PATCH] Fixes Circular arrow distortion, Bug #46272 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Distortion occurred when angle mod 90° != 0 All of my past & future contributions to LibreOffice may be licensed under the MPL/LGPLv3+ dual license - Lennard Wasserthal Change-Id: I4af7e7f1dcbc4d1262592c362532df4957e52399 Signed-off-by: Lennard Reviewed-on: https://gerrit.libreoffice.org/679 Reviewed-by: Radek Doulík Tested-by: Radek Doulík --- svx/source/customshapes/EnhancedCustomShape2d.cxx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx index 08762bb1418f..63421f8aa59f 100644 --- a/svx/source/customshapes/EnhancedCustomShape2d.cxx +++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx @@ -1725,10 +1725,9 @@ void EnhancedCustomShape2d::CreateSubPath( sal_uInt16& rSrcPt, sal_uInt16& rSegm Point aCenter( aRect.Center() ); Point aStart( GetPoint( seqCoordinates[ (sal_uInt16)( rSrcPt + nXor ) ], sal_True, sal_True ) ); Point aEnd( GetPoint( seqCoordinates[ (sal_uInt16)( rSrcPt + ( nXor ^ 1 ) ) ], sal_True, sal_True ) ); - double fRatio = (double)aRect.GetHeight() / (double)aRect.GetWidth(); - aStart.X() = (sal_Int32)( ( (double)( aStart.X() - aCenter.X() ) ) * fRatio ) + aCenter.X(); + aStart.X() = (sal_Int32)( ( (double)( aStart.X() - aCenter.X() ) ) ) + aCenter.X(); aStart.Y() = (sal_Int32)( ( (double)( aStart.Y() - aCenter.Y() ) ) ) + aCenter.Y(); - aEnd.X() = (sal_Int32)( ( (double)( aEnd.X() - aCenter.X() ) ) * fRatio ) + aCenter.X(); + aEnd.X() = (sal_Int32)( ( (double)( aEnd.X() - aCenter.X() ) ) ) + aCenter.X(); aEnd.Y() = (sal_Int32)( ( (double)( aEnd.Y() - aCenter.Y() ) ) ) + aCenter.Y(); aNewB2DPolygon.append(CreateArc( aRect, aStart, aEnd, bClockwise)); }